Commit Graph

952 Commits

Author SHA1 Message Date
CakeLancelot 9af3b60d4d Fix compilation with MinGW on Windows
Prereqs: mingw-w64-x86_64-luajit, pkg-config
2021-05-12 20:55:40 -05:00
gsemaj d5fc36f877 Fix bad null check and dynamic ID calculation 2021-05-09 09:36:50 -04:00
CPunch aa3dacc84b Fixed stack issue with lEvents 2021-05-09 08:40:39 -04:00
CPunch a29de394ee Updated NPCWrapper to use Vec3 2021-05-09 08:40:39 -04:00
CPunch ca299e0a5b Added NPC.speed setters & getters 2021-05-09 08:40:39 -04:00
CPunch 794b881c4d Added NPCWrapper
- NPC.new, NPC:moveTo() & NPC.maxHealth have all been added
2021-05-09 08:40:39 -04:00
cpunch e8659962a5 Switched makefile to use pkg-config 2021-05-09 08:40:39 -04:00
CPunch 2090062c75 Added Player:message() 2021-05-09 08:40:39 -04:00
CPunch b25b229eb2 Add Player.instance & Player:teleport() 2021-05-09 08:40:39 -04:00
CPunch c2853d9271 Added "/rscripts" command to reload all script states 2021-05-09 08:40:39 -04:00
CPunch cb85f7b7c9 Added Player.onChat event & Player:kick() 2021-05-09 08:40:39 -04:00
CPunch 80f0ff7479 Added World, Entity & Player wrappers
- LuaWrapper.cpp/lua_autopush was updated to support CNSocket*
- Added basic getters added for Entity, (x, y, z & type)
- Added basic getter for Player, (name)
- Added bases getter for World, (version)
- Added World.onPlayerAdded & World.onPlayerRemoved events
2021-05-09 08:40:39 -04:00
CPunch 2aa23a83de Added Lua Events
- LuaWrapper creates a simple event layer for lua states. Allowing events to have registered callbacks & be waited on until fired
- EventWrapper exposes this api to scripts
2021-05-09 08:40:39 -04:00
CPunch 43aa4eaeb8 Added base lua manager
- CMakeLists.txt, Makefile, and appveyor now use luajit
- lua/LuaManager.[ch]pp has been added which includes a basic script loader & thread scheduler
- SCRIPTSDIR has been added to settings.[ch]pp, this specifies what directory lua scripts should be loaded from
- Makefile has been updated to include lua/LuaManager.[ch]pp
2021-05-09 08:40:39 -04:00
gsemaj 6f59001be1 Only loop NPC movement if the NPC has a looping path assigned
Allows paths to terminate.
Also fixes a bug where follower NPCs sometimes oscillate their positions.
2021-05-09 08:38:14 -04:00
gsemaj e5d9e7217e Fix potentially expensive copying of ChunkPos in escort path assignment 2021-05-09 08:36:45 -04:00
dongresource 5c1bb0acc9 Add enabledpatches config option
The server administrator must now specify which patches they want the
server to load (if deviating from the defaults). There are multiple
reasons for this:

* It's useful to be able to pick and choose which patches you want to
boot the server with; without having to move the directories in and out
of the patch directory
* This way, we can have different default patches for different builds
of the game (104 vs 1013)
* ...ergo, it's easier to rapidly switch builds without having to
rearrange your workspace to properly run them
* This also allows us to remove the std::filesystem stuff, which has
spotty compatibility with slightly older (but still current) versions of
the compilers
2021-05-07 21:29:18 +02:00
gsemaj 32daa68458 Clean up /path command handler 2021-05-06 12:17:34 -04:00
gsemaj 2d7aa3c536 Fix EOL in settings.cpp 2021-05-06 12:17:34 -04:00
gsemaj eb8ec85746 Scan all chunks in instance instead of in view for escort missions 2021-05-06 12:17:34 -04:00
gsemaj a90ba9ea08 Assign paths with matching taskIDs to escort tasks on task start 2021-05-06 12:17:34 -04:00
gsemaj 974b67d4b6 Move constructPathNPC to Transport 2021-05-06 12:17:34 -04:00
gsemaj 6ae4ab2cbf Move findApplicablePaths to Transport, add taskID argument 2021-05-06 12:17:34 -04:00
gsemaj 9fb41342b3 Fix server crash if patch folder doesn't exist 2021-05-06 12:17:34 -04:00
gsemaj 0ccc66208d Added /path here 2021-05-06 12:17:34 -04:00
gsemaj ebd3b7b75a Fix path matching breaking prematurely 2021-05-06 12:17:34 -04:00
gsemaj d41122157f Fix gruntwork paths not saving targeted types 2021-05-06 12:17:34 -04:00
gsemaj 917407f164 Apply finished NPC paths immediately 2021-05-06 12:17:34 -04:00
gsemaj c393bf7af2 Prioritize ID match over type match when finding a path for an NPC 2021-05-06 12:17:34 -04:00
gsemaj 72b62cd5a4 Don't load NPCs with types not found in the XDT 2021-05-06 12:17:34 -04:00
gsemaj e508a06eca Automatically flush gruntwork after /path end 2021-05-06 12:17:34 -04:00
gsemaj f71d2581bd Read completed NPC paths from gruntwork 2021-05-06 12:17:34 -04:00
gsemaj 89a32ac9a4 Write completed NPC paths to gruntwork 2021-05-06 12:17:34 -04:00
gsemaj c7e2e66a51 Add /path command 2021-05-06 12:17:34 -04:00
gsemaj 37b1d11948 Fix JSON type ambiguity in loadPaths 2021-05-06 12:17:34 -04:00
gsemaj c960b06227 Apply matching paths to NPCs and mobs on spawn 2021-05-06 12:17:34 -04:00
gsemaj 2721f21427 Fix gruntwork file being flushed to root 2021-05-06 12:17:34 -04:00
gsemaj d5e65fda3c Update to new path schema + add NPCPath struct 2021-05-06 12:17:34 -04:00
gsemaj 5f29ea93d8 Undo pathing check bypass + update to patched academy tdata 2021-05-06 12:17:34 -04:00
gsemaj 36cb32454d Add force property override feature to patcher
This has a variety of applications, but is particularly useful when we want to replace arrays instead of add onto them
2021-05-06 12:17:34 -04:00
gsemaj af8dd61967 Clean up tabledata init 2021-05-06 12:17:34 -04:00
gsemaj 26894c8a69 Implement automatic tdata patching 2021-05-06 12:17:34 -04:00
gsemaj bf12ed4c47 Fix patcher refusing to patch between unsigned and signed integers 2021-05-06 12:17:34 -04:00
gsemaj 59303ba30d Update tdata to patch format, change config constants accordingly 2021-05-06 12:17:34 -04:00
gsemaj b2a8b86e4c Temporarily disable spawn check for mob pathing 2021-05-06 12:17:34 -04:00
gsemaj 0c05fc4add Offset NPC IDs by 1 to avoid ID 0 2021-05-06 12:17:34 -04:00
gsemaj c415db3fd3 Implement recursive JSON patching functionality 2021-05-06 12:17:34 -04:00
gsemaj 183586afe4 [refac] Clean up new tdata init routine 2021-05-06 12:17:34 -04:00
gsemaj e546d3948c [refac] Stop using WarpLocation for coordinates and introduce a Vec3 2021-05-06 12:17:34 -04:00
gsemaj a0e758f5b7 [refac] Move WarpLocation to Transport.hpp 2021-05-06 12:17:34 -04:00