- 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?
-Added crude json files to load in all Dungeon schematics from previous
versions of DimDoors, into the game
-Added an extra failsafe before Teleporting to a newly generated
Dungeon, checking if the Location is not-null instead of crashing
Notes:
-Rather often, a door to a Dungeon will say that "Teleportation failed".
I think this is because the Dungeon Schematic in question fails to
include a list of its Tile-Entities and their corresponding data.
-Changed build number
-The properties of rifts do not get read from the schematic
-Added the start of what is going to be a system to force-generate a
particular Dungeon Pocket schematic
-Repaired a fault in choosing a random Dungeon Template
-Restructured the loading of Schematic files from disk, to make the code
more concise and less repetitive.
-Remedied bug where Rifts in Dungeon Schematics did not get registered,
because their ID was not -1 from the start.
-Corrected naming of Chaos Door Block in the American localization
-Added Dutch localisation
-Added json file that loads 2 of the Dungeon Schematics (for now for
testing purposes)
Todo:
-Apparently, DimDoors in the schematics don't have the right orientation
until they get rendered. Maybe they should update their orientation for
teleportation from the bottom block of the door
-Add a command to generate a specific schematic as a Dungeon Pocket.
-Merged BlockDimWall and BlockLimbo classes into one
-Added a setup for teleportation to the overworld by Eternal Fabric
TODO
-Rename BlockDimWall to BlockFabric
-Redo the Eternal and Unraveled Fabric textures
-Make Eternal Fabric teleportation actually work on impact
-included flow-math library in the jar file on "build"
-fix for public pockets' depthZeroLocation's calculation
-TeleportCommand got weakened a little
-Repaired Survival and inter-dimensional (non vanilla dimension)
teleporting
-Added some missing javadoc to utility classes
-Corrected transformLocationRandomly
-Made Location serializable
-Corrected mistake in commented out generation of and generated default
private and public pockets.
Todo:
-Loading a world with a generated pocket, crashes the game with an
infinite loop. Ergo, the registering of Pockets needs to be done
somewhere else than in their constructor.
-Added (auto-generated) default private and public pockets and changed
the jsons,
-Commented out auto-generation code at the bottom of Schematic.java.
-Fixed a stupid method call mistake in PocketRegistry that made stuff
fail miserably.
-Made sure that a size 0 pocket schematic can be 16 blocks.
-Added separate Block class for Chaos Door
-Set up Personal DimDoor to create its own type of tile-entity
-Added flag "2" to update blocks upon PocketTemplate placement to
prevent non-defaultstate doors from breaking upon placement.
-Used write- and read- Compressed instead of GZIP Streams
-Closed the output stream
-Added canRiftBePaired field to Rift tile entities
-Added Chaos- and Personal- Door Rift Tile Entities
-Removed statement where I falsely assumed that a meta of 0 meant that
the blockstate was the default.
-Corrected several other mistakes in Schematic.java
-Had to make sure that the blockstate of ancient fabric didn't get
turned into fabric of reality again...
-Made the PocketRegistry use the toString() values of the
EnumPocketTypes, to save its maps in an NBTTagCompound instead of using
the indexes of those Enums to store the maps in NBTTagLists
-Implemented Pockets' UID being determined by their EnumPocketType and
an integer ID
-Fixed some double and triple registering of Pockets
-Fixed a minor major typo in SchematicHandler that prevented
old-format-schematics from being loaded from disk
-Fixed an "index-out-of-bounds-like" typo and a [ character being read
as a special character in the Schematic class
-Restructured and moved dimension files (again)
-Edited the defaultPublic- and -Personal.json files to a final-ish form
-Added another dummy schematic, but now in the new schematic format
-Added the old dungeon pocket schematics to the assets
-Tested loading of .schem and .schematic files from disk as well as from
the mod jar (successful, btw)
# Conflicts:
# src/main/java/com/zixiken/dimdoors/shared/DDProxyCommon.java
# src/main/java/com/zixiken/dimdoors/shared/PocketPlacer.java
# src/main/java/com/zixiken/dimdoors/shared/SchematicHandler.java
# src/main/java/com/zixiken/dimdoors/shared/TeleportHelper.java
# src/main/java/com/zixiken/dimdoors/shared/world/PocketProvider.java
-Resolved all merge conflicts.
-Removed a few unused imports
-Refractored (moved) new classes from the Worlds branch to the new
package structure that came from the Pockets branch
-Changed variant size values of the default empty pocket jsons, because
otherwise they would crash the game on default config pers/pub pocket
size.
-Added a few default pocket jsons
-Errors on world-load were because the above were missing.
-Added a testing schematic (old schematic format)
-Made everything work somehow