- Merge branch 'testing/1.12' into release/1.12
- Merge remote-tracking branch 'origin/version/1.12' into testing/1.12
- Merge branch 'testing/1.12' into origin/version/1.12
- Merge remote-tracking branch 'origin/version/1.12' into testing/1.12
- [Draft] [1.12.2] Info Tabs (#4122)
Adds dynamically added information tabs to worker huts (dynamically based on lang entries) Adds info button and tab to builder and lumberjack for now. * Rpg msging 1.12 (#4132)
There are different types of interactions which result in different trees, different messages, validators and response options.
Each response type has:
One inquiry: The message displayed to the player Response options: Options the player can use to respond Validator: A predicate which checks if the interaction is still valid. At the moment we have two specific types of Interactions:
StandardInteraction Which has the response options you can see in the top screenshot. It has a validator based on the citizenData only.
PosBased Same response options but the validator receives besides the citizenData more special data (the pos).
If a validator requires more information (PoS, ItemStack, Block, ChunkPos, IToken, etc) you setup a new interactionResponseHandler similarly to the PoSBased one and register and set it up in the ModInteractions.
All these interactions inherit the ServerInteraction (only exists on the server side), the ClientInteraction handler exists only on the client and when triggered it sends a message back to the server to invoke the one on the server side.
To setup an interaction of the citizen follow the following steps:
1: Setup a validator and add it to the ModValidators in a static block on top of the class where you use it.
2: Trigger the interaction in the citizen and reference the validator you used above.
This is part 1 of this interaction handling. It adds:
The framework for handling The GUI setup for generic handling. All currently basic citizen interactions. Request System integration Followup Tasks:
ChitChat status based interactions While testing this I found some bugs and fixed them:
All furnace based jobs had problems detecting a broken furnace Fisherman had problem with position finding when in water and had problems detecting wrong rods. * hotfix building tool is null issue for 1.12 * hotfix advancement crash * Sleeping guard feature (#4104)
Guards received a new sleeping feature Added sleeping and levelup particles Guards AI/Combat and stats got a little rework and should work more smooth * Add correct pathfinding shutdown to 1.12.2 (hotfix) * Hotfix advancements NPE (#4107)
fix colony crash on startup * DRAFT: Information Tabs and Advancements (#3944)
Adds in Advancements as a form of Guide through the mod * Added a backup to the sorting function in case some exception occurs. (#4098) * improve state typing/add dynamic tick rates (#4056)
- changing base state type to IState to not be AI dependent
- Adding tickrate into the statemachine, so it can dynamically skip ticks
- Fixed textures merging. (#4085)
Just a small fix for the textures that are merging on the lumberjack model block, when you see the block from under. No visual difference, but the problem disappear. * Merge branch 'version/1.12' into testing/1.12 * fix dynamic claim issue * Feature/empty hut counter (#4038)
getJobName method added to View. getMaxInhabitants method added to View. Additions to logic in getting the total max jobs. * hotfix restriction issues * Fix/msg clientside (#4065)
Fixes an exception on the server because the wrong class is used. * Fix/dman unblock (#4063)
Add that dman which is inactive doesn't get tasks When dman gets reactivated he tries to reassign requests which were assigned to the player * Hotfix packets and netty memory leak (#4061)
- hotfix packets and netty memory leak
- forgot bugger
- add enchanter recipe (hotfix)
- Updated README for windows (#4054)
Updated README for windows * Enchanter (#4024)
the enchanter has a GUI where you can set from who he will drain experience
he will walk to these workers daily and drain some experience (you can set how many levels per day)
there is a chance of him enchanting randomly something while draining (side effect)
if he has a high enough experience level he will request enchanted tomes
he will enchant this tome with a random enchantment, depending on his level, there is a chance to get high level enchantments A few notes a) It is probably one of the nicest workers to watch working b) He takes only 50% of the xp he gains (because he is very skilled) but this percentage is configurable in the config file c) you can configure which books he can produce in the config file as well So, also modded enchantments work
Also adds potential max, to allow to recruit workers if there is a free space for the guard tower. * Improve/fix some chunk data issues (#4036)
- - removed unecessary chunk load counter which goes out of sync
made sure the chunk is mark dirty whenever the capability data changes
- fix 3 claim logic issues
- fix chunk claim caches
- fix backup loading re-claim
Disable crusher and sifter from learning recipes (#4045)
fix crusher or sifter responding to 2x2 requests (by disabling teaching them)
- fix subscribers add when the spawn is claimed (#4033)
fix permissions to not get overwritten by older permission versions (upgrade issue)
- Translation (#4029)
Immensive 1.12 language update * Added empty huts counter (#4005)
Added empty huts counter * Schematics (#4021)
Update jungle schematic style and fix several other schematics * Improve backup loading (#4004)
- - fix colony readNbt not always resetting existing lists
Add backup loading on worldload when the cap is missing a non-deleted colony.
- fix loading to all existing & missing files
- add javadoc
- only load once
- update building removal warning condition
- forgot the reset
- add permission map clear on read
- - improve active condition and view send rate
- - fix chunk data/claim issue (#4013)
- 1.14 fixes (#4002)
Respect native workOrder order * Subscriber and colony tick improvements (#3995)
Changes proposed in this pull request: Feature chunkload Colonies now save the position of claimed chunks which are loaded, which is used to see if the colony is loaded/parts of it are loaded. Feature subscribers In this I've changed the way subscriber adding works, aswell as some internal structure of it.
Subscribers(players who receive colony views) are no longer constantly pulled from the server's playerlist each tick, instead they're added/removed on chunk enter. Which adds little overhead at all as we're already loading the chunk claim on chunk enter. Those which are added on chunk enter are called/saved as close subscribers, aka subscribers close to the colony.
In addition we're storing important players with global permissions on login/logoff, those are used for out of colony functionality like keeping the colony active when chunks are loaded, or receiving important messages of stuff happening within the colony like a raider event. Atm owners and officer have those perms.
Feature Colony Ticks Introduces states to the colony Simplifies ticking logic and makes it about 3x faster Reworked some older ticking logic stuff The basic idea is that states for a colony lets us freely control what the colony updates in each state. For now there are three states:
Active: All managers /other things updated/tick as usual Unloaded: Only logic which should tick even when the colony chunks are not loaded, requires a player(global subscriber) online for the colony with certain permissions. Inactive: Colony does nothing except occasionally checking if it needs to go into another state. Using the statemachine for this allows us to define transitions for logic which needs to be executed on ticks, simply by choosing in which state it should tick, giving it a function to execute and specifying at which rate we need the updates. Regarding performance this makes our colonies require about three times less tim...