载入中...
搜索中...
未找到
Vehicle.cpp
浏览该文件的文档.
218void Vehicle::registerMobility(IVehicleMobility* mobility) { VehicleSystem::registerMobility(mobility); }
259 wmod->mountSetLimits(m, md.yawMin, md.yawMax, md.pitchMin, md.pitchMax, md.rotSpeed, md.firingArc);
357float Vehicle::getHeading(VehicleEntity* v) { return v == nullptr ? 0.f : v->motion()->heading; }
376float Vehicle::getMaxHealth(VehicleEntity* v) { return v == nullptr ? 0.f : v->health()->maxHp; }
378std::string Vehicle::getFaction(VehicleEntity* v) { return v == nullptr ? std::string{} : v->identity()->faction; }
388void Vehicle::applyDamage(VehicleEntity* v, float amount, const std::string& zone, int sourceId) {
433bool Vehicle::isDestroyed(VehicleEntity* v) { return v != nullptr && v->stateFlags()->destroyed; }
439int Vehicle::getSeatCount(VehicleEntity* v) { return v == nullptr ? 0 : static_cast<int>(v->seats()->list.size()); }
495void Vehicle::setPlayerControls(int playerId, float throttle, float steer, float brake, bool fire, float aimYaw,
511void Vehicle::setInput(VehicleEntity* v, float throttle, float steer, float brake, bool handbrake) {
546int Vehicle::getMountCount(VehicleEntity* v) { return v == nullptr ? 0 : static_cast<int>(v->mounts()->list.size()); }
598 if (s.mountIndex >= 0 && static_cast<size_t>(s.mountIndex) < v.mounts()->list.size() && wmod != nullptr) {
617 if (cur == nullptr || (cur->type != VehicleOrderType::Attack && cur->type != VehicleOrderType::AttackMove)) {
658 return (index >= 0 && index < getEventCount()) ? vehicleEventTypeName(events_[index].type) : std::string{};
673float Vehicle::getEventX(int index) const { return (index >= 0 && index < getEventCount()) ? events_[index].x : 0.f; }
675float Vehicle::getEventY(int index) const { return (index >= 0 && index < getEventCount()) ? events_[index].y : 0.f; }
686 "VehicleEntity", std::function<VehicleEntity*()>([]() -> VehicleEntity* { return nullptr; }), false);
688 vCls.addFunc("getId", [](VehicleEntity* v) -> std::string { return v ? v->identity()->id : std::string{}; });
689 vCls.addFunc("getDefId", [](VehicleEntity* v) -> std::string { return v ? v->identity()->defId : std::string{}; });
697 vCls.addFunc("getHeading", [](VehicleEntity* v) -> float { return v ? v->motion()->heading : 0.f; });
698 vCls.addFunc("getSpeed", [](VehicleEntity* v) -> float { return v ? v->motion()->speed : 0.f; });
700 vCls.addFunc("getMaxHealth", [](VehicleEntity* v) -> float { return v ? v->health()->maxHp : 0.f; });
701 vCls.addFunc("isDestroyed", [](VehicleEntity* v) -> bool { return v != nullptr && v->stateFlags()->destroyed; });
702 vCls.addFunc("isArrived", [](VehicleEntity* v) -> bool { return v != nullptr && v->motion()->arrived; });
709 [](VehicleEntity* v) -> int { return v == nullptr ? 0 : static_cast<int>(v->mounts()->list.size()); });
725 cls.addFunc("getMobilityCount", [](Vehicle*) -> int { return VehicleSystem::mobilityCount(); });
Owning, renderer-independent dynamic values.
Strongly typed Vehicle definition/entity runtime adapter.
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Result< Value > fromJson(std::string_view json)
Parse one strict JSON value into an owning Value.
Definition Value.cpp:57
const T * getIf() const noexcept
Return a typed pointer, or nullptr when the kind differs.
Definition Value.h:180
eve::ResultRef< const Definition > resolve(const std::string &type, const std::string &id) const
Resolves a definition through the common registry API.
Definition Definitions.cpp:313
eve::Result< DefinitionHandle > insert(const std::string &type, const std::string &id, int version, const std::string &json)
Inserts a definition using the common generation-qualified registry.
Definition Definitions.cpp:257
eve::Result< DefinitionHandle > replace(const std::string &type, const std::string &id, int version, const std::string &json)
Replaces a live definition and invalidates its previous handle.
Definition Definitions.cpp:276
eve::Result< DefinitionHandle > remove(const std::string &type, const std::string &id)
Removes a definition and returns the retained tombstone handle.
Definition Definitions.cpp:295
int countType(const std::string &type) const
Returns the number of definitions registered for a type.
Definition Definitions.cpp:349
const Definition * atType(const std::string &type, int index) const
Returns a definition by id order within one type, or nullptr.
Definition Definitions.cpp:364
Box3D rigid-body world. Script coordinates are meters (Box3D native), unlike 2D World which uses pixe...
Definition World3D.h:63
Box2D world wrapper (2D physics) with pixel-space coordinates. Handles stepping, gravity,...
Definition World.h:41
virtual bool sample(VehicleEntity &v, int occupantId, VehicleInput &out)=0
采样 occupantId 乘客的控制;返回是否有效(有效则填充 out)。
static VehiclePhysicsStatus detach(VehicleEntity *v)
Destroy attached bodies if any.
Definition VehiclePhysics.cpp:273
static VehiclePhysicsStatus attach2D(VehicleEntity *v, eve::physics::World *world)
Attach a 2D dynamic body when physics is in the build.
Definition VehiclePhysics.cpp:222
static bool isAttached(VehicleEntity *v)
Whether the entity has a live, resolvable physics body.
Definition VehiclePhysics.cpp:283
static VehiclePhysicsStatus attach3D(VehicleEntity *v, eve::physics::World3D *world, float heightY)
Attach a 3D dynamic body when physics is in the build.
Definition VehiclePhysics.cpp:245
static float height(VehicleEntity *v)
3D body height, or 0 when no 3D body is attached.
Definition VehiclePhysics.cpp:287
static void update(VehicleEntity &v, float dt)
每帧推进:命令 → 输入 → 移动模型。自动瞄准由 Vehicle 模块完成。
Definition VehicleSystem.cpp:200
static eve::Result< void > pushOrder(VehicleEntity &v, const VehicleOrder &order)
追加一条命令;Move/AttackMove 会清空旧命令(RTS 习惯)。
Definition VehicleSystem.cpp:260
static void setPlayerControls(int playerId, const PlayerControl &control)
写入某玩家的控制状态(游戏每帧填充)。
Definition VehicleSystem.cpp:302
static IVehicleDriver * findDriver(const std::string &name)
按名字取驾驶者;未注册返回 nullptr。
Definition VehicleSystem.cpp:295
static const VehicleOrder * currentOrder(VehicleEntity &v)
当前命令;无命令返回 nullptr。
Definition VehicleSystem.cpp:283
static void setEventSink(VehicleEventSink sink)
注册事件汇(替换旧的;传 nullptr 清空)。
Definition VehicleSystem.cpp:198
static void registerMobility(IVehicleMobility *mobility)
注册移动模型实现;同名替换。
Definition VehicleSystem.cpp:186
static int findSeatByPlayer(VehicleEntity &v, int playerId)
Finds seat by player.
Definition VehicleSystem.cpp:323
static bool enterSeat(VehicleEntity &v, int seatIndex, int playerId)
座位:进入 / 离开 / 按玩家找座位。
Definition VehicleSystem.cpp:311
int getSeatOccupant(VehicleEntity *v, int seatIndex)
Returns the seat occupant.
Definition Vehicle.cpp:462
eve::weapon::WeaponMountEntity * getMount(VehicleEntity *v, int index)
Returns the mount.
Definition Vehicle.cpp:548
bool attachPhysics2D(VehicleEntity *v, eve::physics::World *world)
将载具绑定到 physics world 拥有的 2D 刚体。
Definition Vehicle.cpp:520
void applyDamage(VehicleEntity *v, float amount, const std::string &zone="", int sourceId=0)
伤害管线:修饰器 → 装甲区倍率 → 扣血 → 事件。
Definition Vehicle.cpp:388
float getArmorZoneMult(VehicleEntity *v, const std::string &zone)
装甲区倍率(未命中任何区返回 1)。
Definition Vehicle.cpp:425
VehicleEntity * newVehicle(const std::string &defId, float x, float y, float heading=0.f, const std::string &faction="")
工厂:按模板创建载具并挂载武器挂点(ECS 表持有,脚本持有句柄)。
Definition Vehicle.cpp:232
void setPlayerControls(int playerId, float throttle, float steer, float brake, bool fire, float aimYaw, float aimPitch)
写入玩家控制(归一化;角度为度)。
Definition Vehicle.cpp:495
std::string getSeatCameraMode(VehicleEntity *v, int seatIndex)
Returns the seat camera mode.
Definition Vehicle.cpp:448
std::string getVehicleDefinitionMobility(const std::string &id)
Returns the vehicle definition mobility.
Definition Vehicle.cpp:200
float getVehicleDefinitionMaxHealth(const std::string &id)
Returns the vehicle definition max health.
Definition Vehicle.cpp:209
std::string getSeatName(VehicleEntity *v, int seatIndex)
Returns the seat name.
Definition Vehicle.cpp:441
std::string getPhysicsSpace(VehicleEntity *v)
返回存活绑定的 "2d"/"3d";缺失或 stale 时返回空字符串。
Definition Vehicle.cpp:536
static void registerMobility(IVehicleMobility *mobility)
注册移动模型(C++ 插件/游戏侧扩展点;同名替换)。
Definition Vehicle.cpp:218
eve::weapon::WeaponMountEntity * getSeatMount(VehicleEntity *v, int seatIndex)
座位绑定的武器挂点(mountIndex 无效返回 nullptr)。
Definition Vehicle.cpp:469
bool attachPhysics3D(VehicleEntity *v, eve::physics::World3D *world, float heightY=1.f)
将载具绑定到 physics world 拥有的 3D 刚体。
Definition Vehicle.cpp:524
std::string getEventOrderType(int index) const
Returns the event order type.
Definition Vehicle.cpp:669
void setFaction(VehicleEntity *v, const std::string &faction)
Sets the faction.
Definition Vehicle.cpp:380
std::string getCurrentOrderType(VehicleEntity *v)
当前命令类型名("move" / "attack_move" / "attack" / "stop" / "hold" / "none")。
Definition Vehicle.cpp:345
std::string getEventVehicleId(int index) const
Returns the event vehicle id.
Definition Vehicle.cpp:661
int registerVehiclesFromJson(const std::string &json)
从 JSON 注册载具模板;返回成功注册数量。
Definition Vehicle.cpp:133
void setInput(VehicleEntity *v, float throttle, float steer, float brake=0.f, bool handbrake=false)
直接驾驶输入(FPS / 脚本驱动;RTS 命令也会写 input)。
Definition Vehicle.cpp:511
bool isSeatOccupied(VehicleEntity *v, int seatIndex)
True when seat occupied.
Definition Vehicle.cpp:455
bool fireAt(WeaponEntity *w, float x, float y, float z, int shooterId=0)
向目标点开火(自动生成 FireRequest)。
Definition Weapon.cpp:450
WeaponEntity * mountGetWeapon(WeaponMountEntity *m)
Returns the weapon mounted on a mount, or null when empty.
Definition Weapon.cpp:411
float getWeaponDefinitionRange(const std::string &id)
Returns the weapon definition range.
Definition Weapon.cpp:264
bool fire(WeaponEntity *w, const FireRequest &req)
武器操作(脚本便捷入口,转发 WeaponSystem)。
Definition Weapon.cpp:448
void mountAimAt(WeaponMountEntity *m, float yaw, float pitch)
按限位夹取目标角并写入挂载武器的瞄准目标(角度,度)。
Definition Weapon.cpp:424
WidgetDesc list(std::string listId, const std::vector< std::string > &items, const std::function< WidgetDesc(const std::string &, int)> &itemFn)
Expand a string list into a Group of item widgets. itemFn(label, index) builds each row; keys default...
Definition Widget.cpp:715
const char * vehicleOrderTypeName(VehicleOrderType type)
命令类型的字符串名("move" | "attack_move" | ...)。
Definition Vehicle.cpp:79
eve::Result< VehicleDefinition > parseVehicleDefinition(const eve::definitions::Definition &source)
Parse one canonical registry definition into a short-lived typed projection.
Definition VehicleDefinitionRuntime.cpp:98
@ OrderCompleted
@ Destroyed
@ AttackMove
载具模块入口(eve.Vehicle):定义注册 / 实体工厂 / RTS 命令 / 帧调度。 设计文档:docs/dev/通用载具系统设计.md
Definition RTSArchetype.h:10
@ NotFound
detail::StrongUint64< detail::SchemaVersionTag > SchemaVersion
Persistent data-format version; not a runtime replacement generation.
Definition SchemaVersion.h:13
void registerCppEntityView(const ssq::Class &cls, CppEntityViewFn fn)
Registers cpp entity view.
Definition ECS.cpp:861
Definition Container.h:602
One immutable view of a registered versioned JSON definition.
Definition Definitions.h:31
载具模板(registerVehiclesFromJson 注册,进程级注册表)。
Definition VehicleTypes.h:135
eve::weapon::WeaponMountEntity * mount
Definition VehicleTypes.h:278
std::string cameraMode
Definition VehicleTypes.h:312
一条 Vehicle 领域命令(生命周期由 Vehicle order adapter 执行)。
Definition VehicleTypes.h:61
一次攻击请求(C++ 系统 / 脚本发起)。角度均为度。 旧名 FireRequest 保留为别名,向后兼容。
Definition WeaponTypes.h:204