コード例 #1
0
//-----------------------------------------------------------------------------
// 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)
	;
}
コード例 #2
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #3
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #4
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #5
0
//-----------------------------------------------------------------------------
// 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)
	;
}
コード例 #6
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #7
0
//-----------------------------------------------------------------------------
// 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)
	;
}
コード例 #8
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #9
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #10
0
//-----------------------------------------------------------------------------
// 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)
	;
}
コード例 #11
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #12
0
//-----------------------------------------------------------------------------
// 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)
}
コード例 #13
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #14
0
//-----------------------------------------------------------------------------
// 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()
		)
	;
}
コード例 #15
0
//-----------------------------------------------------------------------------
// 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)
	;
}
コード例 #16
0
//-----------------------------------------------------------------------------
// 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)
	;
}
コード例 #17
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #18
0
//-----------------------------------------------------------------------------
// 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)
	;
}
コード例 #19
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #20
0
ファイル: players_wrap.cpp プロジェクト: dsezen/Source.Python
//-----------------------------------------------------------------------------
// 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);
}
コード例 #21
0
//-----------------------------------------------------------------------------
// 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")
	);
}
コード例 #22
0
		.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(
コード例 #23
0
//-----------------------------------------------------------------------------
// 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);
}
コード例 #24
0
//-----------------------------------------------------------------------------
// 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);
}