3#ifndef TRAM_SDK_ENTITIES_SCRIPT_H
4#define TRAM_SDK_ENTITIES_SCRIPT_H
16namespace ScriptableType {
17 void Register(
name_t base_type, Entity* (*constr_func)(
name_t new_type,
const SharedEntityData&,
const ValueArray&),
void (*destr_func)(Entity*));
18 Entity*
Make(
name_t base_type,
name_t type,
const SharedEntityData&,
const ValueArray&);
19 void Yeet(Entity* yeetable);
33 T::UpdateParameters();
68 if (!valid_type) data =
Value();
81 T::MessageHandler(msg);
Provides script language subclassing.
Definition: script.h:23
void UpdateParameters()
Definition: script.h:31
Scriptable(const SharedEntityData &shared_data, const ValueArray &field_array, name_t type)
Definition: script.h:25
name_t GetType()
Definition: script.h:95
void EventHandler(Event &evt)
Definition: script.h:85
void Serialize()
Definition: script.h:55
void Unload()
Definition: script.h:49
void SanitizeData(Value &data)
Definition: script.h:61
void SetParameters()
Definition: script.h:37
void Load()
Definition: script.h:43
void MessageHandler(Message &msg)
Definition: script.h:75
~Scriptable()
Definition: script.h:29
name_t type
Definition: script.h:99
Generic, type-safe union.
Definition: value.h:18
bool IsBool() const
Definition: value.h:128
bool IsInt() const
Definition: value.h:129
bool IsFloat() const
Definition: value.h:130
Type GetType() const
Definition: value.h:174
void Load(const char *filename)
Loads a language file.
Definition: language.cpp:33
value_t CallFunction(name_t name, std::vector< Value > parameters)
Definition: script.cpp:60
void Register(name_t base_type, Entity *(*constr_func)(name_t new_type, const SharedEntityData &, const ValueArray &), void(*destr_func)(Entity *))
Definition: script.cpp:39
void Yeet(Entity *yeetable)
Definition: script.cpp:51
Entity * Make(name_t base_type, name_t new_type, const SharedEntityData &data, const ValueArray &array)
Definition: script.cpp:43
@ TYPE_NAME
Definition: type.h:15
UID name_t
Definition: uid.h:43
Event data.
Definition: event.h:24
event_t type
Type of the event.
Definition: event.h:58
void * data
Pointer to arbitrary data.
Definition: event.h:63
id_t poster
Definition: event.h:60
event_t subtype
Arbitrary event subtype.
Definition: event.h:59
value_t * data_value
Pointer to a value_t.
Definition: event.h:65
Message data.
Definition: message.h:16
message_t type
Type of the message.
Definition: message.h:53
id_t receiver
ID of the Entity that will receive the message.
Definition: message.h:55
id_t sender
ID of the Entity that sent the message.
Definition: message.h:54
value_t * data_value
Pointer to a value_t.
Definition: message.h:60
void * data
Pointer to arbitrary data.
Definition: message.h:58
Basic Entity parameters.
Definition: entity.h:132
Interned string type.
Definition: uid.h:10
static bool is_valid(const UID &)
Checks whether the name is valid.
Definition: uid.cpp:121