//----------------------------------------------------------------------------- // Exports CServerUnknown. //----------------------------------------------------------------------------- void export_server_unknown(scope _entities) { class_< IServerUnknown, bases<IHandleEntity>, boost::noncopyable >("ServerUnknown", no_init) .def("get_collideable", &IServerUnknown::GetCollideable, "Returns the Collideable object for this entity.", reference_existing_object_policy() ) .def("get_networkable", &IServerUnknown::GetNetworkable, "Returns the ServerNetworkable object for this entity.", reference_existing_object_policy() ) .def("get_base_entity", &IServerUnknown::GetBaseEntity, "Returns the CBasEntity pointer for this entity.", return_by_value_policy() ) .add_property("classname", &IServerUnknownExt::GetClassname, "Return the entity's classname." ) .def("is_networked", &IServerUnknownExt::IsNetworked, "Return True if the entity is networked." ) ADD_MEM_TOOLS(IServerUnknown) ; }
//----------------------------------------------------------------------------- // Expose IEntityFactoryDictionary. //----------------------------------------------------------------------------- void export_entity_factory_dictionary_interface(scope _factories) { class_<IEntityFactoryDictionary, IEntityFactoryDictionary *, boost::noncopyable> _EntityFactoryDictionary("_EntityFactoryDictionary", no_init); // Methods... _EntityFactoryDictionary.def("install_factory", &IEntityFactoryDictionary::InstallFactory); _EntityFactoryDictionary.def("create", &IEntityFactoryDictionary::Create, reference_existing_object_policy() ); _EntityFactoryDictionary.def("destroy", &IEntityFactoryDictionary::Destroy); _EntityFactoryDictionary.def("find_factory", &IEntityFactoryDictionary::FindFactory, reference_existing_object_policy() ); _EntityFactoryDictionary.def("get_cannonical_name", &IEntityFactoryDictionary::GetCannonicalName); // Add memory tools... _EntityFactoryDictionary ADD_MEM_TOOLS(IEntityFactoryDictionary); }
//----------------------------------------------------------------------------- // Exports mstudiobone_t. //----------------------------------------------------------------------------- void export_bone(scope _studio) { class_<mstudiobone_t, mstudiobone_t *, boost::noncopyable> ModelBone("ModelBone"); // Properties... ModelBone.add_property("name", &ModelBoneExt::get_name); ModelBone.def_readwrite("parent", &mstudiobone_t::parent); ModelBone.add_property("position", make_getter(&mstudiobone_t::pos, reference_existing_object_policy())); ModelBone.add_property("quaternion", make_getter(&mstudiobone_t::quat, reference_existing_object_policy())); ModelBone.add_property("radiant_euler", make_getter(&mstudiobone_t::rot, reference_existing_object_policy())); ModelBone.add_property("position_scale", make_getter(&mstudiobone_t::posscale, reference_existing_object_policy())); ModelBone.add_property("radiant_euler_scale", make_getter(&mstudiobone_t::rotscale, reference_existing_object_policy())); ModelBone.add_property("position_to_bone", make_getter(&mstudiobone_t::poseToBone, reference_existing_object_policy())); // TODO: Export matrix3x4_t... ModelBone.add_property("alignment", make_getter(&mstudiobone_t::qAlignment, reference_existing_object_policy())); ModelBone.add_property("surface_name", &ModelBoneExt::get_surface_name); ModelBone.def_readwrite("flags", &mstudiobone_t::flags); ModelBone.def_readwrite("procedural_type", &mstudiobone_t::proctype); ModelBone.def_readwrite("physics_bone", &mstudiobone_t::physicsbone); ModelBone.def_readwrite("flags", &mstudiobone_t::flags); ModelBone.def_readwrite("contents", &mstudiobone_t::contents); // Methods... ModelBone.def("get_procedure", &ModelBoneExt::get_procedure, manage_new_object_policy()); // Add memory tools... ModelBone ADD_MEM_TOOLS(mstudiobone_t); }
//----------------------------------------------------------------------------- // Expose SendTable. //----------------------------------------------------------------------------- void export_send_table(scope _props) { class_<SendTable, SendTable *> SendTable_("SendTable", no_init); // Properties... SendTable_.def_readonly("props", &SendTable::m_pProps); SendTable_.def_readonly("length", &SendTable::m_nProps); SendTable_.add_property("name", &SendTable::GetName); // Methods... SendTable_.def("get_name", &SendTable::GetName); SendTable_.def("get_length", &SendTable::GetNumProps); SendTable_.def("is_initialized", &SendTable::IsInitialized); SendTable_.def("set_initialized", &SendTable::SetInitialized); SendTable_.def("get_prop", &SendTable::GetProp, reference_existing_object_policy() ); SendTable_.def("set_write_flag", &SendTable::SetWriteFlag); SendTable_.def("get_write_flag", &SendTable::GetWriteFlag); SendTable_.def("has_props_encoded_against_tick_count", &SendTable::HasPropsEncodedAgainstTickCount); SendTable_.def("set_has_props_encoded_against_tick_count", &SendTable::SetHasPropsEncodedAgainstTickcount); // Special methods... SendTable_.def("__getitem__", &SendTableSharedExt::__getitem__, reference_existing_object_policy() ); SendTable_.def("__len__", &SendTable::GetNumProps); // Add memory tools... SendTable_ ADD_MEM_TOOLS(SendTable); }
//----------------------------------------------------------------------------- // Exports CServerNetworkable. //----------------------------------------------------------------------------- void export_server_networkable(scope _entities) { class_< IServerNetworkable, IServerNetworkable *, boost::noncopyable >("ServerNetworkable", no_init) .def("get_entity_handle", &IServerNetworkable::GetEntityHandle, "Returns the HandleEntity instance of this entity.", reference_existing_object_policy() ) .def("get_server_class", &IServerNetworkable::GetServerClass, "Returns the ServerClass instance of this entity.", reference_existing_object_policy() ) .def("get_edict", &IServerNetworkable::GetEdict, "Returns the edict_t instance of this entity.", reference_existing_object_policy() ) .def("get_class_name", &IServerNetworkable::GetClassName, "Returns the class name of this entity." ) .def("release", &IServerNetworkable::Release ) .def("area_num", &IServerNetworkable::AreaNum ) /* .def("get_base_networkable", &IServerNetworkable::GetBaseNetworkable, reference_existing_object_policy() ) */ .def("get_base_entity", &IServerNetworkable::GetBaseEntity, return_by_value_policy() ) .def("get_pvs_info", &IServerNetworkable::GetPVSInfo, "Returns the current visible data.", reference_existing_object_policy() ) ADD_MEM_TOOLS(IServerNetworkable) ; }
//----------------------------------------------------------------------------- // Exports mstudioanimdesc_t. //----------------------------------------------------------------------------- void export_animation(scope _studio) { class_<mstudioanimdesc_t, mstudioanimdesc_t *, boost::noncopyable> Animation("Animation"); // Properties... Animation.add_property("model_header", make_function(&mstudioanimdesc_t::pStudiohdr, reference_existing_object_policy())); Animation.add_property("name", &AnimationExt::get_name); Animation.def_readwrite("flags", &mstudioanimdesc_t::flags); Animation.def_readwrite("frames_count", &mstudioanimdesc_t::numframes); Animation.def_readwrite("movements_count", &mstudioanimdesc_t::nummovements); Animation.def_readwrite("movements_offset", &mstudioanimdesc_t::movementindex); Animation.def_readwrite("anim_block", &mstudioanimdesc_t::animblock); Animation.def_readwrite("anim_offset", &mstudioanimdesc_t::animindex); Animation.def_readwrite("local_hierarchy_count", &mstudioanimdesc_t::numlocalhierarchy); Animation.def_readwrite("local_hierarchy_offset", &mstudioanimdesc_t::localhierarchyindex); Animation.def_readwrite("section_offset", &mstudioanimdesc_t::sectionindex); Animation.def_readwrite("section_frames", &mstudioanimdesc_t::sectionframes); Animation.def_readwrite("zero_frame_span", &mstudioanimdesc_t::zeroframespan); Animation.def_readwrite("zero_frame_count", &mstudioanimdesc_t::zeroframecount); Animation.def_readwrite("zero_frame_index", &mstudioanimdesc_t::zeroframeindex); Animation.def_readwrite("zero_frame_stall_time", &mstudioanimdesc_t::zeroframestalltime); // Methods... Animation.def("get_movement", &AnimationExt::get_movement, reference_existing_object_policy()); // Animation.def("get_hierarchy", &mstudioanimdesc_t::pHierarchy, reference_existing_object_policy()); // Add memory tools... Animation ADD_MEM_TOOLS(mstudioanimdesc_t); }
//----------------------------------------------------------------------------- // Exports IPredictionSystem. //----------------------------------------------------------------------------- void export_prediction_system(scope _effects) { class_<IPredictionSystem>("PredictionSystem") .def("get_next", &IPredictionSystem::GetNext, "Returns the next prediction system.", reference_existing_object_policy() ) .def("set_suppress_event", &IPredictionSystem::SetSuppressEvent, "Set the SuppressEvent state.", args("state") ) .def("can_predict", &IPredictionSystem::CanPredict ) .def_readwrite("prediction_systems", &IPredictionSystem::g_pPredictionSystems ) .def("suppress_events", &IPredictionSystem::SuppressEvents ) .staticmethod("suppress_events") ADD_MEM_TOOLS(IPredictionSystem) ; }
//----------------------------------------------------------------------------- // Exports mstudiobbox_t. //----------------------------------------------------------------------------- void export_hitbox(scope _studio) { class_<mstudiobbox_t, mstudiobbox_t *, boost::noncopyable> Hitbox("Hitbox"); // Properties... Hitbox.add_property("name", &mstudiobbox_t::pszHitboxName); Hitbox.def_readwrite("bone", &mstudiobbox_t::bone); Hitbox.def_readwrite("group", &mstudiobbox_t::group); Hitbox.add_property("min", make_getter(&mstudiobbox_t::bbmin, reference_existing_object_policy())); Hitbox.add_property("max", make_getter(&mstudiobbox_t::bbmax, reference_existing_object_policy())); // Add memory tools... Hitbox ADD_MEM_TOOLS(mstudiobbox_t); }
//----------------------------------------------------------------------------- // Exports mstudioanimdesc_t. //----------------------------------------------------------------------------- void export_movement(scope _studio) { class_<mstudiomovement_t, mstudiomovement_t *, boost::noncopyable> Movement("Movement"); // Properties... Movement.def_readwrite("end_frame", &mstudiomovement_t::endframe); Movement.def_readwrite("motion_flags", &mstudiomovement_t::motionflags); Movement.def_readwrite("velocity_start", &mstudiomovement_t::v0); Movement.def_readwrite("velocity_end", &mstudiomovement_t::v1); Movement.def_readwrite("angle", &mstudiomovement_t::angle); Movement.add_property("vector", make_getter(&mstudiomovement_t::vector, reference_existing_object_policy())); Movement.add_property("position", make_getter(&mstudiomovement_t::position, reference_existing_object_policy())); // Add memory tools... Movement ADD_MEM_TOOLS(mstudiomovement_t); }
//----------------------------------------------------------------------------- // Exports CHandleEntity. //----------------------------------------------------------------------------- void export_handle_entity(scope _entities) { class_<IHandleEntity, boost::noncopyable>("HandleEntity", no_init) .add_property("basehandle", make_function(&IHandleEntity::GetRefEHandle, reference_existing_object_policy()), &IHandleEntity::SetRefEHandle ) ADD_MEM_TOOLS(IHandleEntity) ; }
//----------------------------------------------------------------------------- // Exports mstudioseqdesc_t. //----------------------------------------------------------------------------- void export_sequence(scope _studio) { class_<mstudioseqdesc_t, mstudioseqdesc_t *, boost::noncopyable> Sequence("Sequence"); // Properties... Sequence.add_property("model_header", make_function(&mstudioseqdesc_t::pStudiohdr, reference_existing_object_policy())); Sequence.def_readwrite("label_offset", &mstudioseqdesc_t::szlabelindex); Sequence.add_property("label", &SequenceExt::get_label); Sequence.def_readwrite("activity_offset", &mstudioseqdesc_t::szactivitynameindex); Sequence.add_property("activity", &SequenceExt::get_activity); Sequence.def_readwrite("flags", &mstudioseqdesc_t::flags); Sequence.def_readwrite("activity_index", &mstudioseqdesc_t::activity); Sequence.def_readwrite("act_weight", &mstudioseqdesc_t::actweight); Sequence.def_readwrite("events_count", &mstudioseqdesc_t::numevents); Sequence.def_readwrite("events_offset", &mstudioseqdesc_t::eventindex); Sequence.add_property("min", make_getter(&mstudioseqdesc_t::bbmin, reference_existing_object_policy())); Sequence.add_property("max", make_getter(&mstudioseqdesc_t::bbmax, reference_existing_object_policy())); Sequence.def_readwrite("blends_count", &mstudioseqdesc_t::numblends); Sequence.def_readwrite("animation_offset", &mstudioseqdesc_t::animindexindex); Sequence.def_readwrite("movement_index", &mstudioseqdesc_t::movementindex); Sequence.def_readwrite("fade_in_time", &mstudioseqdesc_t::fadeintime); Sequence.def_readwrite("fade_out_time", &mstudioseqdesc_t::fadeouttime); Sequence.def_readwrite("local_entry_node", &mstudioseqdesc_t::localentrynode); Sequence.def_readwrite("local_exit_node", &mstudioseqdesc_t::localexitnode); Sequence.def_readwrite("node_flags", &mstudioseqdesc_t::nodeflags); Sequence.def_readwrite("entry_phase", &mstudioseqdesc_t::entryphase); Sequence.def_readwrite("exit_phase", &mstudioseqdesc_t::exitphase); Sequence.def_readwrite("lastframe", &mstudioseqdesc_t::lastframe); Sequence.def_readwrite("next_sequence", &mstudioseqdesc_t::nextseq); Sequence.def_readwrite("pose", &mstudioseqdesc_t::pose); // Methods... Sequence.def("get_animation_index", &mstudioseqdesc_t::anim); Sequence.def("get_weight", &mstudioseqdesc_t::weight); // Add memory tools... Sequence ADD_MEM_TOOLS(mstudioseqdesc_t); }
//----------------------------------------------------------------------------- // Declare the _commands._server module. //----------------------------------------------------------------------------- DECLARE_SP_SUBMODULE(_commands, _server) { export_server_command_manager(_server); // Helper functions... def("get_server_command", &GetServerCommand, "Gets the ServerCommandDispatcher instance using just the name or also the helptext and/or flags", ("name", arg("help_text")=object(), arg("flags")=0), reference_existing_object_policy() ); EXPOSE_COMMAND_GENERATOR(ServerCommandGenerator) }
//----------------------------------------------------------------------------- // Exports mstudiohitboxset_t. //----------------------------------------------------------------------------- void export_hitbox_set(scope _studio) { class_<mstudiohitboxset_t, mstudiohitboxset_t *> HitboxSet("HitboxSet"); // Properties... HitboxSet.add_property("name", &HitboxSetExt::get_name); HitboxSet.def_readwrite("hitboxes_count", &mstudiohitboxset_t::numhitboxes); // Methods... HitboxSet.def("get_hitbox", &mstudiohitboxset_t::pHitbox, reference_existing_object_policy()); // Add memory tools... HitboxSet ADD_MEM_TOOLS(mstudiohitboxset_t); }
//----------------------------------------------------------------------------- // Exports CPlayerGenerator. //----------------------------------------------------------------------------- void export_player_generator(scope _players) { class_<CPlayerGenerator>("PlayerGenerator") .def("__iter__", &CPlayerGenerator::iter, "Returns the iterable object." ) .def("__next__", &CPlayerGenerator::next, "Returns the next valid instance.", reference_existing_object_policy() ) ; }
//----------------------------------------------------------------------------- // Exports CServerUnknown. //----------------------------------------------------------------------------- void export_server_unknown(scope _entities) { class_< IServerUnknown, bases<IHandleEntity>, boost::noncopyable >("ServerUnknown", no_init) .def("get_collideable", &IServerUnknown::GetCollideable, "Returns the Collideable object for this entity.", reference_existing_object_policy() ) .def("get_networkable", &IServerUnknown::GetNetworkable, "Returns the ServerNetworkable object for this entity.", reference_existing_object_policy() ) .def("get_base_entity", &IServerUnknown::GetBaseEntity, "Returns the CBasEntity pointer for this entity.", return_by_value_policy() ) ADD_MEM_TOOLS(IServerUnknown) ; }
//----------------------------------------------------------------------------- // Exports CHandleEntity. //----------------------------------------------------------------------------- void export_handle_entity(scope _entities) { class_<IHandleEntity, boost::noncopyable>("HandleEntity", no_init) .def("set_ref_ehandle", &IHandleEntity::SetRefEHandle, args("handle") ) .def("get_ref_ehandle", &IHandleEntity::GetRefEHandle, reference_existing_object_policy() ) ADD_MEM_TOOLS(IHandleEntity) ; }
//----------------------------------------------------------------------------- // Expose SendProp. //----------------------------------------------------------------------------- void export_send_prop(scope _props) { class_<SendProp, SendProp *, boost::noncopyable> SendProp_("SendProp", no_init); // Properties... SendProp_.def_readonly("type", &SendProp::m_Type); SendProp_.def_readonly("bits", &SendProp::m_nBits); SendProp_.def_readonly("low_value", &SendProp::m_fLowValue); SendProp_.def_readonly("high_value", &SendProp::m_fHighValue); SendProp_.def_readonly("array_prop", &SendProp::m_pArrayProp); SendProp_.def_readonly("length", &SendProp::m_nElements); SendProp_.def_readonly("element_stride", &SendProp::m_ElementStride); SendProp_.def_readonly("exclude_data_table_name", &SendProp::m_pExcludeDTName); SendProp_.def_readonly("parent_array_prop_name", &SendProp::m_pParentArrayPropName); SendProp_.add_property("name", &SendProp::GetName); SendProp_.def_readonly("high_low_mul", &SendProp::m_fHighLowMul); SendProp_.add_property("flags", &SendProp::GetFlags); SendProp_.add_property("data_table", make_function( &SendProp::GetDataTable, reference_existing_object_policy() ) ); SendProp_.add_property("offset", &SendProp::GetOffset); // CS:GO specific properties... SendProp_.NOT_IMPLEMENTED_ATTR("priority"); // Methods... SendProp_.def("is_signed", &SendProp::IsSigned); SendProp_.def("is_exclude_prop", &SendProp::IsExcludeProp); SendProp_.def("is_inside_array", &SendProp::IsInsideArray); SendProp_.def("get_proxy_function", &SendPropSharedExt::get_proxy_function, manage_new_object_policy()); // CS:GO specific methods... SendProp_.NOT_IMPLEMENTED("get_priority"); // Engine specific stuff... export_engine_specific_send_prop(_props, SendProp_); // Add memory tools... SendProp_ ADD_MEM_TOOLS(SendProp); }
//----------------------------------------------------------------------------- // Exports CBaseEntityHandle. //----------------------------------------------------------------------------- void export_base_entity_handle(scope _entities) { class_<CBaseHandle>("BaseEntityHandle") .def(init<CBaseHandle&>()) .def(init<unsigned long>()) .def(init<int, int>()) .def("init", &CBaseHandle::Init, args("entry", "serial_number") ) .def("term", &CBaseHandle::Term ) .def("is_valid", &CBaseHandle::IsValid, "Returns whether the handle has been initted with any values." ) .def("get_entry_index", &CBaseHandle::GetEntryIndex ) .def("get_serial_number", &CBaseHandle::GetSerialNumber ) .def("to_int", &CBaseHandle::ToInt ) .def(self != self) .def(self == self) .def(self < self) .def("set", &CBaseHandle::Set, args("entity"), "Assigns a value to the handle.", reference_existing_object_policy() ) ADD_MEM_TOOLS(CBaseHandle) ; }
//----------------------------------------------------------------------------- // Expose IEntityFactory. //----------------------------------------------------------------------------- void export_entity_factory(scope _factories) { class_<IEntityFactory, boost::noncopyable> EntityFactory("EntityFactory", no_init); // Methods... EntityFactory.def("create", &IEntityFactory::Create, reference_existing_object_policy() ); EntityFactory.def("destroy", &IEntityFactory::Destroy); // Properties... EntityFactory.add_property("size", &IEntityFactory::GetEntitySize); // Add memory tools... EntityFactory ADD_MEM_TOOLS(IEntityFactory); }
//----------------------------------------------------------------------------- // Exports IClient. //----------------------------------------------------------------------------- void export_client(scope _players) { class_<IClient, IClient*, bases<INetChannelHandler>, boost::noncopyable> Client("Client", no_init); Client.add_property( "name", &IClient::GetClientName, "Return the client's name." ); Client.add_property( "net_channel", make_function( &IClient::GetNetChannel, reference_existing_object_policy() ) ); // TODO: Export more Client ADD_MEM_TOOLS(IClient); }
//----------------------------------------------------------------------------- // Declare the _commands._say module. //----------------------------------------------------------------------------- DECLARE_SP_SUBMODULE(_commands, _say) { export_say_command_manager(_say); // Helper functions... def("get_say_command", GetSayCommand, "Returns the SayCommandDispatcher instance for the given command", args("name"), reference_existing_object_policy() ); def("register_say_filter", RegisterSayFilter, "Registers a callable to be called when clients use the say commands (say, say_team).", args("callable") ); def("unregister_say_filter", UnregisterSayFilter, "Unregisters a say filter.", args("callable") ); }
.def("add_sub_key", &KeyValues::AddSubKey, "Adds a sub key. Make sure the subkey isn't a child of some other KeyValues.", args("sub_key") ) .def("remove_sub_key", &KeyValues::RemoveSubKey, "Removes a subkey from the list. DOES NOT DELETE IT!", args("sub_key") ) .add_property("first_sub_key", make_function( &KeyValues::GetFirstSubKey, reference_existing_object_policy() ), "Returns the first subkey in the list. Will iterate over the keys AND the values." ) .add_property("next_key", make_function( &KeyValues::GetNextKey, reference_existing_object_policy() ), &KeyValues::SetNextKey, "Returns the next subkey. Will iterate the keys AND the values." ) .add_property("first_true_sub_key", make_function(
//----------------------------------------------------------------------------- // Exports CBaseEntity. //----------------------------------------------------------------------------- void export_base_entity(scope _entity) { class_<CBaseEntityWrapper, boost::shared_ptr<CBaseEntityWrapper>, bases<IServerEntity>, boost::noncopyable> BaseEntity("BaseEntity", no_init); // Initializers... BaseEntity.def("__init__", make_constructor( &CBaseEntityWrapper::__init__, default_call_policies(), args("entity_index") ) ); // Properties... BaseEntity.add_property("server_class", make_function(&CBaseEntityWrapper::GetServerClass, reference_existing_object_policy()), "The ServerClass instance of this entity (read-only)." ); BaseEntity.add_property("datamap", make_function(&CBaseEntityWrapper::GetDataDescMap, reference_existing_object_policy()), "The DataMap instance of this entity (read-only)." ); BaseEntity.add_property("edict", make_function(&CBaseEntityWrapper::GetEdict, reference_existing_object_policy())); BaseEntity.add_property("index", &CBaseEntityWrapper::GetIndex); BaseEntity.add_property("pointer", make_function(&CBaseEntityWrapper::GetPointer)); BaseEntity.add_property("inthandle", &CBaseEntityWrapper::GetIntHandle); // Methods... BaseEntity.def("get_key_value_string", &CBaseEntityWrapper::GetKeyValueString, "Returns the value of the given field name.", args("field_name") ); BaseEntity.def("get_key_value_int", &CBaseEntityWrapper::GetKeyValueInt, "Returns the value of the given field name.", args("field_name") ); BaseEntity.def("get_key_value_float", &CBaseEntityWrapper::GetKeyValueFloat, "Returns the value of the given field name.", args("field_name") ); BaseEntity.def("get_key_value_vector", &CBaseEntityWrapper::GetKeyValueVector, "Returns the value of the given field name.", args("field_name") ); BaseEntity.def("get_key_value_bool", &CBaseEntityWrapper::GetKeyValueBool, "Returns the value of the given field name.", args("field_name") ); BaseEntity.def("get_key_value_color", &CBaseEntityWrapper::GetKeyValueColor, "Returns the value of the given field name.", args("field_name") ); BaseEntity.def("set_key_value_int", &CBaseEntityWrapper::SetKeyValue<int>, "Sets a field to the given value.", args("field_name", "value") ); BaseEntity.def("set_key_value_float", &CBaseEntityWrapper::SetKeyValue<float>, "Sets a field to the given value.", args("field_name", "value") ); BaseEntity.def("set_key_value_string", &CBaseEntityWrapper::SetKeyValue<const char *>, "Sets a field to the given value.", args("field_name", "value") ); BaseEntity.def("set_key_value_vector", &CBaseEntityWrapper::SetKeyValue<Vector>, "Sets a field to the given value.", args("field_name", "value") ); BaseEntity.def("set_key_value_bool", &CBaseEntityWrapper::SetKeyValue<bool>, "Sets a field to the given value.", args("field_name", "value") ); BaseEntity.def("set_key_value_color", &CBaseEntityWrapper::SetKeyValueColor, "Sets a field to the given value.", args("field_name", "value") ); BaseEntity.def("is_player", &CBaseEntityWrapper::IsPlayer, "Return True if the entity is a player." ); // Add memory tools... BaseEntity ADD_MEM_TOOLS(CBaseEntityWrapper); }
//----------------------------------------------------------------------------- // Exports studiohdr_t. //----------------------------------------------------------------------------- void export_model_header(scope _studio) { class_<studiohdr_t, boost::shared_ptr<studiohdr_t>, boost::noncopyable> ModelHeader("ModelHeader", no_init); // Initializer... ModelHeader.def("__init__", make_constructor(&ModelHeaderExt::__init__, default_call_policies(), args("model_name") ) ); // Properties... ModelHeader.def_readwrite("id", &studiohdr_t::id); // Looks like a pointer? ModelHeader.def_readwrite("version", &studiohdr_t::version); ModelHeader.def_readwrite("checksum", &studiohdr_t::checksum); ModelHeader.add_property("name", &studiohdr_t::pszName); ModelHeader.add_property("eye_position", make_getter(&studiohdr_t::eyeposition, reference_existing_object_policy())); ModelHeader.add_property("illumination_center", make_getter(&studiohdr_t::illumposition, reference_existing_object_policy())); ModelHeader.add_property("hull_min", make_getter(&studiohdr_t::hull_min, reference_existing_object_policy())); ModelHeader.add_property("hull_max", make_getter(&studiohdr_t::hull_max, reference_existing_object_policy())); ModelHeader.add_property("view_min", make_getter(&studiohdr_t::view_bbmin, reference_existing_object_policy())); ModelHeader.add_property("view_max", make_getter(&studiohdr_t::view_bbmax, reference_existing_object_policy())); ModelHeader.def_readwrite("flags", &studiohdr_t::flags); ModelHeader.def_readwrite("bones_count", &studiohdr_t::numbones); ModelHeader.def_readwrite("bones_offset", &studiohdr_t::boneindex); ModelHeader.def_readwrite("bone_controllers_count", &studiohdr_t::numbonecontrollers); ModelHeader.def_readwrite("bone_controllers_offset", &studiohdr_t::bonecontrollerindex); ModelHeader.def_readwrite("hitbox_sets_count", &studiohdr_t::numhitboxsets); ModelHeader.def_readwrite("hitbox_sets_offset", &studiohdr_t::hitboxsetindex); ModelHeader.def_readwrite("local_animations_count", &studiohdr_t::numlocalanim); ModelHeader.def_readwrite("animations_offset", &studiohdr_t::localanimindex); ModelHeader.def_readwrite("attachments_count", &studiohdr_t::numlocalattachments); ModelHeader.def_readwrite("local_sequences_count", &studiohdr_t::numlocalseq); ModelHeader.def_readwrite("local_sequence_offset", &studiohdr_t::localseqindex); ModelHeader.def_readwrite("mass", &studiohdr_t::mass); ModelHeader.def_readwrite("contents", &studiohdr_t::contents); // Methods... ModelHeader.def("get_bone", &studiohdr_t::pBone, reference_existing_object_policy()); // ModelHeader.def("remap_sequence_bone", &studiohdr_t::RemapSeqBone); // ModelHeader.def("remap_animation_bone", &studiohdr_t::RemapAnimBone); ModelHeader.def("get_bone_controller", &studiohdr_t::pBonecontroller, reference_existing_object_policy()); ModelHeader.def("get_hitbox_set", &studiohdr_t::pHitboxSet, reference_existing_object_policy()); ModelHeader.def("get_local_animation", &studiohdr_t::pLocalAnimdesc, reference_existing_object_policy()); // ModelHeader.def("has_sequences_available", &studiohdr_t::SequencesAvailable); // ModelHeader.def("get_animation", &studiohdr_t::pAnimdesc, reference_existing_object_policy()); // ModelHeader.def("get_sequences_count", &studiohdr_t::GetNumSeq); // ModelHeader.def("get_sequence", &studiohdr_t::pSeqdesc, reference_existing_object_policy()); // ModelHeader.def("get_activity_list_version", &studiohdr_t::GetActivityListVersion); // ModelHeader.def("set_activity_list_version", &studiohdr_t::SetActivityListVersion); ModelHeader.def("get_attachment", &studiohdr_t::pLocalAttachment, reference_existing_object_policy()); // Special methods... ModelHeader.def("__len__", make_getter(&studiohdr_t::length)); // Add memory tools... ModelHeader ADD_MEM_TOOLS(studiohdr_t); }