On branch dev1
Changes to be committed:
modified: src/main/java/org/dimdev/dimdoors/item/ModItemGroups.java
modified: src/main/java/org/dimdev/dimdoors/item/ModItems.java
and JiJed openworlds
Changes to be committed:
modified: src/main/java/org/dimdev/dimdoors/DimensionalDoorsClientInitializer.java
modified: src/main/resources/assets/dimdoors/models/block/marking_plate.json
modified: src/main/resources/data/minecraft/dimension/dimdoors/limbo.json
modified: src/main/resources/data/minecraft/dimension_type/dimdoors/limbo.json
-updated mappings version to latest
-updated Forge version to recommended
-made RayTraceHelper.rayTraceForRiftTools more readable, added a range setting to it and made it stop when your head is in a solid block
-added raytrace method for entities that also works on servers
-fixed Rift Blade's teleportation to Entities feature
-added random offset and yaw change based on the durability of the Blade
-added always ending up facing the Entity after teleport
Co-Authored-By: Corail31 <corail31@users.noreply.github.com>
-Copied over Vanilla raytrace code and made some slight adjustments, because Vanilla assumes that you never want a RayTrace to hit a non-solid block that is not a liquid.
-Rift Blade, Rift Configuration Tool, Rift Remover and Rift Stabiliser can now hit underwater Rift Tears
-Rift Configuration Tool can now hit non-RiftTear Rifts
-Fixes #71
- 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)
-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.)
- 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
- Major simplifincations to the TileEntityRift class and destination classes
- Use a graph in the RiftRegistry for simpler tracking of rift sources and targets
-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)
-Fixed configured Public and Private pocket sizes not being taken into
account when loading the game, and thus, when placing down pocket
schematics.
-Added config option to force-load all available schematics.
-Made Editing config defaults easier, by automatically adjusting
description strings.
-Changed dimensionranges functionality to use a bit more of Forge's
native functionality and only 1 list instead of two of which 1 would be
guaranteedly unused.
-Upped the forge and mappings versions in build.gradle
-Restructured Mod Name and Dependencies strings in DimDoors.java
-Instead of returning a null bounding box in
BlockDimensionalDoorTransient#getBoundingBox, for now, return an empty
bounding box.
- Fix rift signatures overwriting old rift/replacing blocks
- Fix rifts placed by door break being refreshed by Minecraft
- Fix pitch and yaw being inverted on teleport