-Fixed length and height being swapped in Cubic Chunks Schematic Placement (stumbled upon this
-Fixed gateways partially generating at y level 16 if the (cubic) chunk they *should* be in was totally empty / 100% air (storage = null), because yBase wasn't taken into account.
- 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
* Remove defaults from config strings, forge adds these automatically
* Inline default options constatns to make changing the defaults easier
* Reformat config
* 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.
- Updated Forge version
- Updated Mappings version
- Reverted to using config field names that actually match with the in-code field names, because describing the purpose of config fields is really the task of the comment, not the field name itself
- Added central default, minimum and maximum config values where needed.
- Improved config comments
- Renamed some of the config values, as their names were way too long and specific
At @runemoro 's instruction:
- Made replacePlaceholders static and need a Schematic parameter
- Applied the replacePlaceholders method to Transient Portal gateway Schematics as well
- Still, setting the gateway generation chance too high may force the gateways to be generated in each other's space, causing a crash on worldgen
- 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
- Made Chaos Door crafting recipe cheaper (since it does not link)
- Repaired Quartz Door crafting recipe (no ore dictionary, though)
- Removed double Rift Blade recipe
- Disabled craftability of the (creative) Rift Connection Tool
- Rebalanced recipes' material costs of the Rift Remover, Rift Signature and Stable Rift Signature
- Added alternate recipes for Woven World Thread Armour pieces
- Weakened the Rift Blade (Diamond -> Iron)
- Removed crafting-ingredient-only item-classes (World Thread and Stable Fabric
- 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?
- Changed maximum generation chances "to compare with" to 1.0
- Changed config values to doubles (and divided the default values by 10.000)
Why? Because "15 out of 10.000" is super trivial.
Now, if you set the chance to, for instance, 2.5 (out of 1), this means that there will generate exactly 2 gateways per chunk + a random chance of 1 out of 2 for a third one. Under 1.0 will still follow a normal distribution, though.
- 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 minimum required and maximum allowd MC versions
- Added setup for a minimum FoamFix version (for when they fix their Fast Hoppers)
- Lowered the minimum required Forge version to 1.12.0's earliest version
- Added workaround so FoamFix at least doesn't crash DimDoors for now
- Maybe we should actually make this the default?
- 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
- Added a method to dynamically fetch the NBT_TYPE of NBTTagCompounds
- Re-added StringUtils
- Added a simple String Array search method to StringUtils
- Added a counter for pistons and tnt
- Removed counter for Warp Doors on Sandstone, because we know those amounts by now.
- Fixed the TileEntity NBT not getting read properly
- Split the block counters from other logic
- Expressed my rage
- Moved `rift.markStateChanged();` to later, so it only has to be done once in-code
- Patched the conversion of that one Warp Door that was placed on SandStone on the bottom of a pocket.
- Made sure that Transient Portals DO close after they have been passed through.
- Removed double replacement of Monoliths
- Made sure that @runemoro 's generic TileEntity generation code writes to the **output** list of TileEntities
- 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.)