Update templates
This commit is contained in:
@@ -42,7 +42,7 @@ class Object(recordclass.RecordClass, use_weakref=True): # type: ignore
|
||||
CRC: Optional[int] = None
|
||||
PCode: Optional[tmpls.PCode] = None
|
||||
Material: Optional[tmpls.MCode] = None
|
||||
ClickAction: Optional[int] = None
|
||||
ClickAction: Optional[tmpls.ClickAction] = None
|
||||
Scale: Optional[Vector3] = None
|
||||
ParentID: Optional[int] = None
|
||||
# Actually contains a weakref proxy
|
||||
@@ -243,6 +243,7 @@ def normalize_object_update(block: Block, handle: int):
|
||||
"NameValue": block.deserialize_var("NameValue", make_copy=False),
|
||||
"TextureAnim": block.deserialize_var("TextureAnim", make_copy=False),
|
||||
"ExtraParams": block.deserialize_var("ExtraParams", make_copy=False) or {},
|
||||
"ClickAction": block.deserialize_var("ClickAction", make_copy=False),
|
||||
"PSBlock": block.deserialize_var("PSBlock", make_copy=False).value,
|
||||
"UpdateFlags": block.deserialize_var("UpdateFlags", make_copy=False),
|
||||
"State": block.deserialize_var("State", make_copy=False),
|
||||
@@ -435,8 +436,8 @@ class FastObjectUpdateCompressedDataDeserializer:
|
||||
"PCode": pcode,
|
||||
"State": state,
|
||||
"CRC": crc,
|
||||
"Material": material,
|
||||
"ClickAction": click_action,
|
||||
"Material": tmpls.MCode(material),
|
||||
"ClickAction": tmpls.ClickAction(click_action),
|
||||
"Scale": scale,
|
||||
"Position": pos,
|
||||
"Rotation": rot,
|
||||
|
||||
@@ -980,6 +980,7 @@ class MCode(IntEnum):
|
||||
# What's in the high nybble, anything?
|
||||
STONE = 0
|
||||
METAL = 1
|
||||
GLASS = 2
|
||||
WOOD = 3
|
||||
FLESH = 4
|
||||
PLASTIC = 5
|
||||
@@ -1688,6 +1689,24 @@ class SoundFlags(IntFlag):
|
||||
STOP = 1 << 5
|
||||
|
||||
|
||||
@se.enum_field_serializer("ObjectClickAction", "ObjectData", "ClickAction")
|
||||
@se.enum_field_serializer("ObjectUpdate", "ObjectData", "ClickAction")
|
||||
class ClickAction(IntEnum):
|
||||
# "NONE" is also used as an alias for "TOUCH"
|
||||
TOUCH = 0
|
||||
SIT = 1
|
||||
BUY = 2
|
||||
PAY = 3
|
||||
OPEN = 4
|
||||
PLAY = 5
|
||||
OPEN_MEDIA = 6
|
||||
ZOOM = 7
|
||||
DISABLED = 8
|
||||
IGNORE = 9
|
||||
# I've seen this in practice, not clear what it is.
|
||||
UNKNOWN = 255
|
||||
|
||||
|
||||
class CompressedFlags(IntFlag):
|
||||
SCRATCHPAD = 1
|
||||
TREE = 1 << 1
|
||||
@@ -1722,7 +1741,7 @@ class ObjectUpdateCompressedDataSerializer(se.SimpleSubfieldSerializer):
|
||||
"State": ObjectStateAdapter(se.U8),
|
||||
"CRC": se.U32,
|
||||
"Material": se.IntEnum(MCode, se.U8),
|
||||
"ClickAction": se.U8,
|
||||
"ClickAction": se.IntEnum(ClickAction, se.U8),
|
||||
"Scale": se.Vector3,
|
||||
"Position": se.Vector3,
|
||||
"Rotation": se.PackedQuat(se.Vector3),
|
||||
|
||||
Reference in New Issue
Block a user