v1.4.4
This commit is contained in:
commit
9c94d113d3
10260 changed files with 1237388 additions and 0 deletions
182
source/game/scripting/StarWorldLuaBindings.hpp
Normal file
182
source/game/scripting/StarWorldLuaBindings.hpp
Normal file
|
@ -0,0 +1,182 @@
|
|||
#ifndef STAR_LUA_BINDINGS_HPP
|
||||
#define STAR_LUA_BINDINGS_HPP
|
||||
|
||||
#include "StarBiMap.hpp"
|
||||
#include "StarRect.hpp"
|
||||
#include "StarPoly.hpp"
|
||||
#include "StarColor.hpp"
|
||||
#include "StarGameTypes.hpp"
|
||||
#include "StarCollisionBlock.hpp"
|
||||
#include "StarLua.hpp"
|
||||
#include "StarPlatformerAStar.hpp"
|
||||
|
||||
namespace Star {
|
||||
|
||||
STAR_CLASS(World);
|
||||
STAR_CLASS(WorldServer);
|
||||
STAR_CLASS(WorldClient);
|
||||
STAR_CLASS(Item);
|
||||
STAR_CLASS(ScriptedEntity);
|
||||
|
||||
namespace LuaBindings {
|
||||
typedef function<Json(ScriptedEntityPtr const& entity, String const& functionName, JsonArray const& args)> CallEntityScriptFunction;
|
||||
|
||||
LuaCallbacks makeWorldCallbacks(World* world);
|
||||
|
||||
void addWorldDebugCallbacks(LuaCallbacks& callbacks);
|
||||
void addWorldEntityCallbacks(LuaCallbacks& callbacks, World* world);
|
||||
void addWorldEnvironmentCallbacks(LuaCallbacks& callbacks, World* world);
|
||||
|
||||
namespace WorldCallbacks {
|
||||
float magnitude(World* world, Vec2F pos1, Maybe<Vec2F> pos2);
|
||||
Vec2F distance(World* world, Vec2F const& arg1, Vec2F const& arg2);
|
||||
bool polyContains(World* world, PolyF const& poly, Vec2F const& pos);
|
||||
LuaValue xwrap(World* world, LuaEngine& engine, LuaValue const& positionOrX);
|
||||
LuaValue nearestTo(World* world, LuaEngine& engine, Variant<Vec2F, float> const& sourcePositionOrX, Variant<Vec2F, float> const& targetPositionOrX);
|
||||
bool rectCollision(World* world, RectF const& arg1, Maybe<CollisionSet> const& arg2);
|
||||
bool pointTileCollision(World* world, Vec2F const& arg1, Maybe<CollisionSet> const& arg2);
|
||||
bool lineTileCollision(World* world, Vec2F const& arg1, Vec2F const& arg2, Maybe<CollisionSet> const& arg3);
|
||||
Maybe<pair<Vec2F, Vec2I>> lineTileCollisionPoint(World* world, Vec2F const& start, Vec2F const& end, Maybe<CollisionSet> const& maybeCollisionSet);
|
||||
bool rectTileCollision(World* world, RectF const& arg1, Maybe<CollisionSet> const& arg2);
|
||||
bool pointCollision(World* world, Vec2F const& point, Maybe<CollisionSet> const& collisionSet);
|
||||
LuaTupleReturn<Maybe<Vec2F>, Maybe<Vec2F>> lineCollision(World* world, Vec2F const& start, Vec2F const& end, Maybe<CollisionSet> const& maybeCollisionSet);
|
||||
bool polyCollision(World* world, PolyF const& arg1, Maybe<Vec2F> const& arg2, Maybe<CollisionSet> const& arg3);
|
||||
List<Vec2I> collisionBlocksAlongLine(World* world, Vec2F const& arg1, Vec2F const& arg2, Maybe<CollisionSet> const& arg3, Maybe<int> const& arg4);
|
||||
List<pair<Vec2I, LiquidLevel>> liquidAlongLine(World* world, Vec2F const& start, Vec2F const& end);
|
||||
Maybe<Vec2F> resolvePolyCollision(World* world, PolyF poly, Vec2F const& position, float maximumCorrection, Maybe<CollisionSet> const& collisionSet);
|
||||
bool tileIsOccupied(World* world, Vec2I const& arg1, Maybe<bool> const& arg2, Maybe<bool> const& arg3);
|
||||
bool placeObject(World* world, String const& arg1, Vec2I const& arg2, Maybe<int> const& arg3, Json const& arg4);
|
||||
Maybe<EntityId> spawnItem(World* world, Json const& itemType, Vec2F const& worldPosition, Maybe<size_t> const& inputCount, Json const& inputParameters, Maybe<Vec2F> const& initialVelocity, Maybe<float> const& intangibleTime);
|
||||
List<EntityId> spawnTreasure(World* world, Vec2F const& position, String const& pool, float level, Maybe<uint64_t> seed);
|
||||
Maybe<EntityId> spawnMonster(World* world, String const& arg1, Vec2F const& arg2, Maybe<JsonObject> const& arg3);
|
||||
Maybe<EntityId> spawnNpc(World* world, Vec2F const& arg1, String const& arg2, String const& arg3, float arg4, Maybe<uint64_t> arg5, Json const& arg6);
|
||||
Maybe<EntityId> spawnStagehand(World* world, Vec2F const& spawnPosition, String const& typeName, Json const& overrides);
|
||||
Maybe<EntityId> spawnProjectile(World* world, String const& arg1, Vec2F const& arg2, Maybe<EntityId> const& arg3, Maybe<Vec2F> const& arg4, bool arg5, Json const& arg6);
|
||||
Maybe<EntityId> spawnVehicle(World* world, String const& vehicleName, Vec2F const& pos, Json const& extraConfig);
|
||||
double time(World* world);
|
||||
uint64_t day(World* world);
|
||||
double timeOfDay(World* world);
|
||||
float dayLength(World* world);
|
||||
Json getProperty(World* world, String const& arg1, Json const& arg2);
|
||||
void setProperty(World* world, String const& arg1, Json const& arg2);
|
||||
Maybe<LiquidLevel> liquidAt(World* world, Variant<RectF, Vec2I> boundBoxOrPoint);
|
||||
float gravity(World* world, Vec2F const& arg1);
|
||||
bool spawnLiquid(World* world, Vec2F const& arg1, LiquidId arg2, float arg3);
|
||||
Maybe<LiquidLevel> destroyLiquid(World* world, Vec2F const& position);
|
||||
bool isTileProtected(World* world, Vec2F const& position);
|
||||
Maybe<PlatformerAStar::Path> findPlatformerPath(World* world, Vec2F const& start, Vec2F const& end, ActorMovementParameters actorMovementParameters, PlatformerAStar::Parameters searchParameters);
|
||||
PlatformerAStar::PathFinder platformerPathStart(World* world, Vec2F const& start, Vec2F const& end, ActorMovementParameters actorMovementParameters, PlatformerAStar::Parameters searchParameters);
|
||||
}
|
||||
|
||||
namespace ClientWorldCallbacks {
|
||||
RectI clientWindow(WorldClient* world);
|
||||
}
|
||||
|
||||
namespace ServerWorldCallbacks {
|
||||
bool breakObject(WorldServer* world, EntityId arg1, bool arg2);
|
||||
bool isVisibleToPlayer(WorldServer* world, RectF const& arg1);
|
||||
bool loadRegion(WorldServer* world, RectF const& arg1);
|
||||
bool regionActive(WorldServer* world, RectF const& arg1);
|
||||
void setTileProtection(WorldServer* world, DungeonId arg1, bool arg2);
|
||||
bool isPlayerModified(WorldServer* world, RectI const& region);
|
||||
Maybe<LiquidLevel> forceDestroyLiquid(WorldServer* world, Vec2F const& position);
|
||||
EntityId loadUniqueEntity(WorldServer* world, String const& uniqueId);
|
||||
void setUniqueId(WorldServer* world, EntityId entityId, Maybe<String> const& uniqueId);
|
||||
Json takeItemDrop(World* world, EntityId entityId, Maybe<EntityId> const& takenBy);
|
||||
void setPlayerStart(World* world, Vec2F const& playerStart, Maybe<bool> respawnInWorld);
|
||||
List<EntityId> players(World* world);
|
||||
LuaString fidelity(World* world, LuaEngine& engine);
|
||||
}
|
||||
|
||||
namespace WorldDebugCallbacks {
|
||||
void debugPoint(Vec2F const& arg1, Color const& arg2);
|
||||
void debugLine(Vec2F const& arg1, Vec2F const& arg2, Color const& arg3);
|
||||
void debugPoly(PolyF const& poly, Color const& color);
|
||||
void debugText(LuaEngine& engine, LuaVariadic<LuaValue> const& args);
|
||||
}
|
||||
|
||||
namespace WorldEntityCallbacks {
|
||||
LuaTable entityQuery(World* world, LuaEngine& engine, Vec2F const& pos1, LuaValue const& pos2, Maybe<LuaTable> options);
|
||||
LuaTable monsterQuery(World* world, LuaEngine& engine, Vec2F const& pos1, LuaValue const& pos2, Maybe<LuaTable> options);
|
||||
LuaTable npcQuery(World* world, LuaEngine& engine, Vec2F const& pos1, LuaValue const& pos2, Maybe<LuaTable> options);
|
||||
LuaTable objectQuery(World* world, LuaEngine& engine, Vec2F const& pos1, LuaValue const& pos2, Maybe<LuaTable> options);
|
||||
LuaTable itemDropQuery(World* world, LuaEngine& engine, Vec2F const& pos1, LuaValue const& pos2, Maybe<LuaTable> options);
|
||||
LuaTable playerQuery(World* world, LuaEngine& engine, Vec2F const& pos1, LuaValue const& pos2, Maybe<LuaTable> options);
|
||||
LuaTable loungeableQuery(World* world, LuaEngine& engine, Vec2F const& pos1, LuaValue const& pos2, Maybe<LuaTable> options);
|
||||
LuaTable entityLineQuery(World* world, LuaEngine& engine, Vec2F const& pos1, Vec2F const& pos2, Maybe<LuaTable> options);
|
||||
LuaTable objectLineQuery(World* world, LuaEngine& engine, Vec2F const& pos1, Vec2F const& pos2, Maybe<LuaTable> options);
|
||||
LuaTable npcLineQuery(World* world, LuaEngine& engine, Vec2F const& pos1, Vec2F const& pos2, Maybe<LuaTable> options);
|
||||
bool entityExists(World* world, EntityId entityId);
|
||||
bool entityCanDamage(World* world, EntityId sourceId, EntityId targetId);
|
||||
Json entityDamageTeam(World* world, EntityId entityId);
|
||||
bool entityAggressive(World* world, EntityId entityId);
|
||||
Maybe<LuaString> entityType(World* world, LuaEngine& engine, EntityId entityId);
|
||||
Maybe<Vec2F> entityPosition(World* world, EntityId entityId);
|
||||
Maybe<Vec2F> entityVelocity(World* world, EntityId entityId);
|
||||
Maybe<RectF> entityMetaBoundBox(World* world, EntityId entityId);
|
||||
Maybe<uint64_t> entityCurrency(World* world, EntityId entityId, String const& currencyType);
|
||||
Maybe<uint64_t> entityHasCountOfItem(World* world, EntityId entityId, Json descriptor, Maybe<bool> exactMatch);
|
||||
Maybe<Vec2F> entityHealth(World* world, EntityId entityId);
|
||||
Maybe<String> entitySpecies(World* world, EntityId entityId);
|
||||
Maybe<String> entityGender(World* world, EntityId entityId);
|
||||
Maybe<String> entityName(World* world, EntityId entityId);
|
||||
Maybe<String> entityDescription(World* world, EntityId entityId, Maybe<String> const& species);
|
||||
Maybe<JsonArray> entityPortrait(World* world, EntityId entityId, String const& portraitMode);
|
||||
Maybe<String> entityHandItem(World* world, EntityId entityId, String const& handName);
|
||||
Json entityHandItemDescriptor(World* world, EntityId entityId, String const& handName);
|
||||
Maybe<String> entityUniqueId(World* world, EntityId entityId);
|
||||
Json getObjectParameter(World* world, EntityId entityId, String const& parameterName, Maybe<Json> const& defaultValue);
|
||||
Json getNpcScriptParameter(World* world, EntityId entityId, String const& parameterName, Maybe<Json> const& defaultValue);
|
||||
List<Vec2I> objectSpaces(World* world, EntityId entityId);
|
||||
Maybe<int> farmableStage(World* world, EntityId entityId);
|
||||
Maybe<int> containerSize(World* world, EntityId entityId);
|
||||
bool containerClose(World* world, EntityId entityId);
|
||||
bool containerOpen(World* world, EntityId entityId);
|
||||
Json containerItems(World* world, EntityId entityId);
|
||||
Json containerItemAt(World* world, EntityId entityId, size_t offset);
|
||||
Maybe<bool> containerConsume(World* world, EntityId entityId, Json const& items);
|
||||
Maybe<bool> containerConsumeAt(World* world, EntityId entityId, size_t offset, int count);
|
||||
Maybe<size_t> containerAvailable(World* world, EntityId entityId, Json const& items);
|
||||
Json containerTakeAll(World* world, EntityId entityId);
|
||||
Json containerTakeAt(World* world, EntityId entityId, size_t offset);
|
||||
Json containerTakeNumItemsAt(World* world, EntityId entityId, size_t offset, int const& count);
|
||||
Maybe<size_t> containerItemsCanFit(World* world, EntityId entityId, Json const& items);
|
||||
Json containerItemsFitWhere(World* world, EntityId entityId, Json const& items);
|
||||
Json containerAddItems(World* world, EntityId entityId, Json const& items);
|
||||
Json containerStackItems(World* world, EntityId entityId, Json const& items);
|
||||
Json containerPutItemsAt(World* world, EntityId entityId, Json const& items, size_t offset);
|
||||
Json containerSwapItems(World* world, EntityId entityId, Json const& items, size_t offset);
|
||||
Json containerSwapItemsNoCombine(World* world, EntityId entityId, Json const& items, size_t offset);
|
||||
Json containerItemApply(World* world, EntityId entityId, Json const& items, size_t offset);
|
||||
Maybe<LuaValue> callScriptedEntity(World* world, EntityId entityId, String const& function, LuaVariadic<LuaValue> const& args);
|
||||
RpcPromise<Vec2F> findUniqueEntity(World* world, String const& uniqueId);
|
||||
RpcPromise<Json> sendEntityMessage(World* world, LuaEngine& engine, LuaValue entityId, String const& message, LuaVariadic<Json> args);
|
||||
Maybe<bool> loungeableOccupied(World* world, EntityId entityId);
|
||||
bool isMonster(World* world, EntityId entityId, Maybe<bool> const& aggressive);
|
||||
Maybe<String> monsterType(World* world, EntityId entityId);
|
||||
Maybe<String> npcType(World* world, EntityId entityId);
|
||||
Maybe<String> stagehandType(World* world, EntityId entityId);
|
||||
bool isNpc(World* world, EntityId entityId, Maybe<int> const& damageTeam);
|
||||
}
|
||||
|
||||
namespace WorldEnvironmentCallbacks {
|
||||
float lightLevel(World* world, Vec2F const& position);
|
||||
float windLevel(World* world, Vec2F const& position);
|
||||
bool breathable(World* world, Vec2F const& position);
|
||||
bool underground(World* world, Vec2F const& position);
|
||||
LuaValue material(World* world, LuaEngine& engine, Vec2F const& position, String const& layerName);
|
||||
LuaValue mod(World* world, LuaEngine& engine, Vec2F const& position, String const& layerName);
|
||||
float materialHueShift(World* world, Vec2F const& position, String const& layerName);
|
||||
float modHueShift(World* world, Vec2F const& position, String const& layerName);
|
||||
MaterialColorVariant materialColor(World* world, Vec2F const& position, String const& layerName);
|
||||
void setMaterialColor(World* world, Vec2F const& position, String const& layerName, MaterialColorVariant color);
|
||||
bool damageTiles(World* world, List<Vec2I> const& arg1, String const& arg2, Vec2F const& arg3, String const& arg4, float arg5, Maybe<unsigned> const& arg6, Maybe<EntityId> sourceEntity);
|
||||
bool damageTileArea(World* world, Vec2F center, float radius, String layer, Vec2F sourcePosition, String damageType, float damage, Maybe<unsigned> const& harvestLevel, Maybe<EntityId> sourceEntity);
|
||||
bool placeMaterial(World* world, Vec2I const& arg1, String const& arg2, String const& arg3, Maybe<int> const& arg4, bool arg5);
|
||||
bool placeMod(World* world, Vec2I const& arg1, String const& arg2, String const& arg3, Maybe<int> const& arg4, bool arg5);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue