- Made Schematics load into RAM as byte arrays at the start of game instead of as NBT (saves +- 1GB of RAM) (SH)
- Added checks for non-default schematics to make sure they contain valid NBT at game start (SH)
- Made sure that invalid templates/schematics aren't even added to the array (SH)
- Made sure that PocketTemplate loads Schematic from byte array before it tries to place it (PT)
- Made sure that PocketTemplate unloads Schematic after placinf it (PT)
- Made sure that TileEntityRift doesn't check its Location while PocketTemplate is replacing placeholders in Schematics (otherwise it will try to use null worlds and shizzle) (TER and PT)
- Added functionality when saving a Schematic, this should put the Schematic in memory as a byte array (SH)
- Fixed little bug, where Schematics that would be too big, would only be loaded when configured not to (SH)
- Added functionality to keep the Schematics that are placed most loaded in RAM as NBT (combination of usageList and usageMap) (SH and PT)
- Added config option to set the maximum number of Schematics that will be cached as NBT (MC and SH)
- Made sure that Dimdoors.log is consistently used (SH)
- Added check for .json file extension for files in the json config folder (SH)
- Schematic files in the jar have had the .schem extension for a while now. Generalised a bit. (SH)
- Read through most of the code, fixing small issues, renaming variables to clearer names, explaining less clear things
- Remove many fixed todos and remove feature-suggestion todos in favor of the Github issue tracker
- class CommonProxy -> interface IProxy (even the name CommonProxy makes no sense, why would you need to proxy something common to both the client and the server!)
- Match minecraft naming convention
- Autoformat classes
A few issues fixed:
- Make rift work in both top and bottom door block
- Change transient portal material to "portal" for correct vanilla logic
- Make doors ignore closeAfterPassThrough (that made no sense lore-wise, dimensional portals close because they are fragile and the player passing through breaks them)
* Fix dimensional door and trapdoor arm swing
* Make trapdoor animation render above the ground rather than below
* Allow rift signatures to replace any replaceable source block
* Send message when rift signature fails because the block at the stored location is no longer replaceable
* Fix hand not swinging for all items
* Fix dimensional trapdoor being registered client-side
* Make rift blade teleport near the entity rather than on it
* Rift jitter adjustment and config option
* Remove "In" suffixes and "par" prefixes from remaining parameters
- Highlight rift core when trying to place a door next to a rift, and warn player about instability (place again to confirm placing next to rift)
- Clean up LSystem class
- Make rifts jitter less
- Stop rift particle flicker, lower max age
- Make rifts grow a bit slower
- Replace option to use old animation with option to highlight the rift core
- Make rift render yaw match teleport target yaw
* Finish renaming all the door blocks in the code to their material (iron, oak, quartz, gold)
* Have the item set up the rift
* Remove the chaos door block
* Remove rotation from entrance rift, and add rotation (teleportTargetPitch/Yaw) to floating rifts (fixes relative rotation in dungeons)
* Add get(Source/Destination)(Pitch/Yaw) abstract methods to the base rift class
* Move tpOffset into a config option rather than a per-rift setting
* Simplify the rift tile entity fields
* Remove unused imports
- Made the crafting recipes of a few doors that virtually only create 1 of themselves in the world a bit cheaper.
- Changed "grey" to the 'Murican "gray" in the lang files.
- Simplified code to have a single blockstate loop and made everything simpler
- Palette no longer contains unused IDs such as sandstone or door default blockstates
- Schematics use placeholders for doors and monolith to make updating them not require changing all the schematics
- Fixed bug where book wasn't being translated
- Make a library with default destinations and link properties
- Remove translateIdCrude, since the schematic conversion code won't be run from outside the dev environment anymore
- Looked at net.minecraft.util.datafix to check if there were any updates that needed to be done
- Added error checking code to make sure everything is being converted correctly
- Removed schematic info generator, that will be added to a separate tool that can run on the new schematics (once the old ones are replaced)
- Manually checked the NBT to make sure everything is ok
- Fixed the schematic containing sandstone at y=0 (it was obvious it needed to be ancient fabric)
- Changed door item ids from "dimensional_door" to "iron_dimensional_door" and from "warp_dimensional_door" to "oak_dimensional_door" to match vanilla (we might want to implement more/all wood types in the future, so it's better to do it now rather than have to convert all schematics) and renamed "rift"
- Added "powered" to note blocks NBT (checked which were powered before)
- Added "CookTimeTotal" to furnace NBT
- Fix the_nexus having SenseiKiwi's hideout door being converted to a dimensional door
- Added Splash Potions, Tipped Arrows, Snow Balls and Spectral Arrows to the Dispenser loot table(s)
UNTESTED
Todo: add EnderMite and SilverFish eggs to these loot tables as well?
- Removed soft FoamFix dependency
- Sorted a switch case tree by key
- Added conversion for that 1 World Thread in 1 dungeon
- Made translateId method more sturdy by hardcoding some fall-back values, so FoamFix doesn't crash it anymore.
- Changed Schematic author SK to full name: SenseiKiwi
- Added a method to dynamically fetch the NBT_TYPE of NBTStringTags
- Made Loot only generate into empty inventories
- Rewrote the Loot generation code, to make it more concise by reusing previously duplicate lines
- Removed dispenser_fire loot table, because the dispensers that needed to light something, can now do so with their old 0-durability Flint 'n Steel
- Succesfully spent 4 hours writing Item NBT conversion code for that one Written Book's contents that took me 20 seconds to convert manually
- Add setBlockState to Schematic
- Add Schematic constructors that generate an air-filled pocket of the right size
- Add blank pockets
- Add void pockets
- Make /pocket command takes you to center of pocket
- Quick registry null pointer fix
- Transferred author, open/closed, and weight info to the json, added nice names for some of the dungeons
- CamelCase -> snake_case
- Removed _o suffix
- Changed all "1" and "2" suffixes to "a" and "b" for conistency, added "a" suffix when there was a file with a "b" suffix
- Removed all "a"/"1" suffixes when there was only one
- Changed "Unstable" Door to "Chaos" Door everywhere in the code and resources.
- Moved "colours" from en_US to en_GB and put 'Murican "colors" in their place.
- Added lang keys for coloured ancient fabric
- Complemented nl_NL lang file
- Fixed the loot generation of Fabric of Reality in dungeon chests (Temporarily was Alternate Fabric, because of the 2 -> 16 colour change.)
- Set dungeon weights
- Implement warp door
- Enable monoliths in dungeons
- Set correct author on schematics (from file name)
- Make grass in pockets less dark
- Fix lighting bug
-Toned down default config values for Private and Public Pocket sizes
-Set up PocketTemplate, SchematicHandler and json files for future
dungeon weighting changes
-Converted normal doors in old pocket schematics to DimDoors
(SchematicConverter)
-Tried to enable Transient Doors
-Tried to add destinations to in-pocket rifts, a.k.a. Warp Doors and
Iron Dimensional Doors (SchematicConverter)
- Simplify pocket schematic generation logic
- Make pocket generator work without having to start Minecraft
- Add `gradlew generatePocketSchematics` task
- Fix travis double-build
- Disable void fog in pockets and change yBase back to 0
- Remove depth info from pockets, we already have it in VirtualLocation
- Fix texture name
- Fix bug cloud/sky renderer crash
- Add netherProbability parameter to the random dungeon function, and set it to depth/50 for now (I'll make it non-linear in a future version)
- Add a reusable weightedRandom method to MathUtils
- Make config option to allow for random public pocket size, modify random template code to be able to add variations for "singular" templates
- Load all pocket sizes but only create ones smaller than maxPocketSize naturally. This way an admin can still manually create a pocket larger than the max size using /dimpocket
- Javadocs
- Null checks for a few methods
- Load schematics when plugin loads rather than when world loads
does adding to groups work?