Commit graph

1120 commits

Author SHA1 Message Date
SenseiKiwi
da579bc23d Stopped Filling Empty Dispensers
Changed FillContainersOperation so that empty dispensers are not filled
with a stack of arrows on import. Just in case someone needs to use
empty dispensers in their design. As far as I can remember, this won't
affect any of our dungeons - arrow traps are rare. The only dungeon that
I can remember is one by Balgor and it was exported with all of its
dispensers loaded.
2014-03-23 11:38:28 -04:00
SenseiKiwi
bf2f5da672 More Dungeons
* Added two exit dungeons: SK-HotSuspense and XombyCraft-RopeBridge
* Removed a duplicate copy of Cere-FloatingAltar that slipped by
2014-03-22 08:00:21 -04:00
SenseiKiwi
687bb73fae Updated SK-FractalCage
* Added a small treasure room that opens when the puzzle is solved and
made the exits in the corners slightly more apparent by placing redstone
lamps.
* Tweaked the redstone a little to correct for a brief signal cutoff.
* Tried to add fireworks that would shoot out when the puzzle was
solved, but it was too hard to secure them against theft while also
getting consistent explosions.
2014-03-20 05:31:02 -04:00
SenseiKiwi
7258ffa7dc Updated pistonFallRuins
Updated the dungeon pistonFallRuins so that it causes less extreme lag
by slowing down and spacing out the timing for the piston traps. Also
reinforced the dungeon against tampering and added lava inside each
piston drop.
2014-03-19 23:08:25 -04:00
SenseiKiwi
8ebaa0f493 Completed Subtree Searches for Dungeon Packs
Completed the implementation of searching through dungeon subtrees to
avoid duplicates in "nearby" rooms
2014-03-19 13:15:30 -04:00
SenseiKiwi
5c44ddefe9 Added Hidden Chests to Snow and Swamp Hubs
Added hidden chests as is the tradition for biome-themed pockets.
2014-03-19 11:53:33 -04:00
SenseiKiwi
4fecf092a3 Changed Default Provider and Biome IDs
XombyCraft has been kind enough to research which provider and biome IDs
are used by major mods. He found some ranges of free IDs and suggested
changing our defaults to sidestep conflicts with Biomes o' Plenty.
2014-03-19 07:46:21 -04:00
SenseiKiwi
ac8874f96a Fixed Crash with ChickenChunks
Fixed a nasty crash to desktop. It happens when ChickenChunks is
installed and a new world is generated with HardcoreLimboEnabled = true.
It appears that ChickenChunks forces a chunk to generate in Limbo if
LimboProvider.canRespawnHere() = true, which is the case if hardcore
Limbo is enabled. Our Monolith and gateway generation code runs as a
tick handler instead of through standard world gen calls. I believe
Limbo is unloaded immediately after the chunks are generated because no
players are around. That would cause DimensionManager to return null for
Limbo because it's not loaded, which would crash our code. We probably
dealt with this for Monoliths by adding a check. Now it happened again
because we didn't take precautions while calling the gateway generation
method. I've added code to forcefully load Limbo if it's not loaded.
2014-03-19 07:43:05 -04:00
SenseiKiwi
484a44a063 Minor Change to LimboProvider
Changed the condition on LimboProvider.canRespawnHere() so that players
can respawn in Limbo even if LimboEnabled is false. LimboEnabled only
controls whether players are sent to Limbo when they die in a pocket. It
does not prevent players from ending up in Limbo because of Monoliths.
If Hardcore Limbo is enabled, it stands to reason that people should be
respawning in Limbo anyway.
2014-03-19 07:04:46 -04:00
SenseiKiwi
ddcb0ff42e Added Dungeons to Ruins
* Added three of Balgor0's dungeons to the Ruins pack
* Made aesthetic and functional improvements to the dungeons
2014-03-19 00:27:26 -04:00
SenseiKiwi
3d8a9aaf27 Removed Balgor Pack
After finally getting the dungeons to load, I've determined that only
half of the rooms should be included. The three remaining rooms should
definitely stay. That's not much for a pack so I'm going to make some
modifications to the schematics and include them as part of Ruins.
2014-03-18 20:30:09 -04:00
SenseiKiwi
300228ea24 Fixed Limbo Gateways (again)
Forgot to add the line for creating the dungeon link. Done and tested.
2014-03-18 05:01:09 -04:00
SenseiKiwi
c980c797e8 Fixed Limbo Gateways and Minor Change
* Fixed Limbo gateways. I accidentally broke them while overhauling
gateways in general.
* Changed references to BaseItemDoor.placeDoorBlock() to use
ItemDoor.placeDoorBlock() instead. We should refer to the original class
that implements the function.
2014-03-18 04:56:07 -04:00
SenseiKiwi
b1b1035b5f Integrated Balgor Pack and Fixed Bugs
* Set up the necessary code in DungeonHelper so that Balgor is
registered along with the other bundled packs.
* Improved the code for registering bundled packs to reduce the number
of paths we need to hardcode and to crash DD if a pack fails to load. A
crash would be inevitable no matter what since bundled packs are
integral to DD.
* Corrected an invalid generation rule for Balgor. It's set to select
random dungeons infinitely for now. I'll add an exit room later and
change the rule to force an exit. Balgor is still unusable until its
schematics get proper doors.
* Fixed PocketBuilder to actually check the results of validating
schematics before we try to build them. This was causing cryptic error
messages when flawed schematics were loaded (e.g. rooms without proper
doors) and could have caused serious problems during dungeon
regeneration. Don't ignore validation!
2014-03-17 19:03:32 -04:00
SenseiKiwi
f8982a871d Minor Change
Removed a misleading comment from the rules.txt for Balgor
2014-03-17 08:57:31 -04:00
SenseiKiwi
a92b07d976 Overhauled Gateway Code
* Split off schematic-related functionality into BaseSchematicGateway.
* Moved the default implementations of many methods to the base classes
because having a bunch of duplicate stubs all over the place was a
waste.
* Removed methods that were redundant or weren't being used for
anything.
* Added support for importing schematics while ignoring air blocks
through IBlockSetter - now our gateways are copied in without air by
default.
* Fixed bugs that would have prevented the sandstone gateway from
generating.
* Removed the code in generate() that would cause dungeon
pre-generation. We should solve this by attaching data to links instead
and it's not a feature that we're even using right now (everything uses
the default pack).
* Fully documented our functions - it's so beautiful...
2014-03-17 06:34:02 -04:00
SenseiKiwi
f4b619635e Rearranged dd-rift Workflow
Changed dd-rift and dd-random so that rifts are only placed after a
dungeon is generated successfully. We also delete the link if generation
fails to clean up after ourselves. Also changed
PocketBuilder.generateSelectedDungeonPocket() so that its checks are
stricter and we validate dungeons before allocating a dimension.

This resolves one of our old issues: "Rearrange workflow in dd-rift to
prevent rifts from being created if no dungeon gets loaded and to
prevent dimension registration if the dimension cannot be populated"
2014-03-17 03:04:06 -04:00
SenseiKiwi
3966f420db Improvements to Dungeon Selection
Changed the code for dungeon selection in various classes so that rather
than allocating and passing around the dimension where the dungeon will
be generated, we instead pass around the parent dimension. This
simplifies our code and moves us toward avoiding stray dims when dungeon
selection fails and to solving the dungeon pre-generation problem with
gateways.
2014-03-17 02:37:57 -04:00
SenseiKiwi
151f1a93a5 Fixed Tooltip for ItemStabilizedRiftSignature
Fixed the tooltip for the Stabilized Rift Signature - it was a copy of
the Rift Signature's tooltip.
2014-03-16 22:55:26 -04:00
SenseiKiwi
1e5e8dcf2b Added Subtree Searches for Dungeon Packs
Added a new setting to dungeon pack configs called
"DuplicateSearchLevels", which allows us to configure how many levels up
of the dungeon tree should be checked to avoid duplicating rooms used in
that subtree. In other words, it lets us avoid repeating rooms used in
neighboring branches of the dungeon. The setting has been added but it's
not fully supported yet - some additional code is needed in
DungeonHelper and it's not trivial to implement. I took a break because
doing it wrong could break dungeon selection.
2014-03-16 22:44:13 -04:00
SenseiKiwi
188ec6d68b Minor Change
Minor name change
2014-03-16 10:08:37 -04:00
SenseiKiwi
cfd48e796a Added Settings and Minor Preemptive Fix
Added a setting to DDProperties for controlling the max distance that
players can be moved randomly when they're sent to Limbo. We previously
had a setting for the same except for leaving Limbo. Cleaned up some of
the related code a little. Added another setting for the chance of rifts
dropping World Thread on block destruction. Also fixed a potential NPE
in EventHookContainer that could arise theoretically arise if a
non-Vanilla door was attached to a rift.
2014-03-16 10:01:35 -04:00
SenseiKiwi
84eee1b155 Added More Dungeons
Added Cere-JumpPass, Cere-TransferTunnel, Cere-GreatHall,
SK-WatchedForkLeft, and SK-WatchedForkRight. Made a minor change to
SK-RaceTheLight.
2014-03-16 04:13:20 -04:00
SenseiKiwi
4f2f86535b Minor Changes
Cleaned up the code for placing Vanilla doors on rifts in
EventHookContainer. Unfortunately, there's a section that I don't
understand and that I feel has a bug. Remember that comments are very
helpful.
2014-03-15 03:54:41 -04:00
SenseiKiwi
d06ca4843c Merge remote-tracking branch 'upstream/master' 2014-03-15 03:26:50 -04:00
SenseiKiwi
d1a2476a4e Quick Fix for Limbo Music Crash
The following small change deals with a strange background-music-related
crash. Wasn't this issue fixed for Jaitsu and Aether II? I'm not sure
what's the cause but I've added a check to prevent the NPE. Please deal
with this most robustly in the future.
2014-03-14 17:22:55 -04:00
StevenRS11
befef486c6 Merge pull request #143 from SenseiKiwi/master
Various Updates
2014-03-14 14:30:44 -05:00
SenseiKiwi
7e8fe10c7d Split dd-rift into Separate Commands
Split dd-rift into dd-rift, dd-random, and dd-list
2014-03-14 08:35:44 -04:00
SenseiKiwi
cc46d90ed4 Updated Rift Blade Code
Removed duplicate code from ItemRiftBlade. It was code that duplicated
the functionality of ItemSword since ItemRiftBlade didn't extend
ItemSword originally. Also updated the tooltip text to remove mentions
of the old door-rotating ability. That's not provided anymore since
doors are easily broken and replaced now. Extended teleport range
slightly.
2014-03-14 07:07:35 -04:00
SenseiKiwi
7a043dfa65 Added Crash on Provider ID Conflict
Added a check so that Dimensional Doors crashes if another registers our
provider IDs. This will show people that something needs fixing instead
of us risking strange bugs.
2014-03-14 06:41:42 -04:00
SenseiKiwi
941cecb372 Tweaks to Loot
Set loot chests to generate 6 stacks of items instead of 5 stacks.
Increased the maximum amount of World Thread per stack from 8 to 12
threads. Increased the chance of encountering a grave chest to 1 in 6
instead of 1 in 7.
2014-03-13 05:58:02 -04:00
SenseiKiwi
01fe9cc87e Added Config Setting for Limbo Escape
Added a configuration option for toggling whether players can teleport
out of Limbo by walking over Eternal Fabric. This became viable after
Rift Gateways began generating in Limbo again. Keybounce has expressed
an interest in using option to deal with the issue of players returning
home since his Overworld won't have gateways.
2014-03-13 05:47:04 -04:00
SenseiKiwi
f40e1e0a91 Change to Dungeon Exits Chances
Changed dungeon exits so that they have a minimum 15% chance of exiting
to the Overworld if a dungeon's root dimension isn't the Overworld. Also
made a minor change to the existing special case for the Nether - the
minimum 20% chance only applies if the root dimension isn't the Nether.
2014-03-13 05:43:26 -04:00
SenseiKiwi
f1eff42a33 Improvements to Crafting Recipes
Added a configuration option for adjusting the number of World Threads
needed to create one Stable Fabric. A few users have asked for this to
be available. The default setting is our usual 8 thread for each fabric.
Also overhauled our recipes to remove blank item slots, allowing them to
be crafted on any line of the grid, as long as all the items are aligned
properly.
2014-03-12 10:27:32 -04:00
SenseiKiwi
3a91d9a6ec Minor Adjustments to Rift Spread
Made a small correction to the condition on max ancestors. Also
thoroughly tested this code to ensure that it really does limit rift
spread. Currently, 2 initial rifts will cause 4 more rifts to be created
eventually.
2014-03-12 07:05:23 -04:00
SenseiKiwi
8d28dc1517 Fixed Uncontrolled Rift Spread
Switched rifts over to using link.childCount() to track spread instead
of the hasGrownRifts flag in the tile entity. The flag had the flaw that
if the rift was replaced by a block, the flag would reset and the rift
could spread again. I think I remember this being intended as punishment
for messing with rifts but it's a problem when combined with World
Thread farming.
2014-03-12 06:06:45 -04:00
SenseiKiwi
5db2b35850 Minor Fix
I forgot to uncomment the line for rifts spawning Endermen.
2014-03-12 05:12:46 -04:00
SenseiKiwi
73cb5ccb6c Fixed Rifts Spreading through Walls
Fixed the issue of rifts spreading through walls. We tried using
raytracing but rifts would always "leak" out of unbreakable enclosures.
With this latest change, rifts spread with the same logic that
determines which blocks are reachable to them.
2014-03-12 05:08:49 -04:00
SenseiKiwi
836eb8a7e0 Added Support for Cluster and Gateway Filters
Added a per-save config file called DimDoorsWorld.cfg. Its corresponding
class is DDWorldProperties. This class supports whitelisting and
blacklisting dimensions for Rift Cluster and Rift Gateway generation.
Note that our ban against generating gateways in the Nether and The End
still applies regardless of those settings. The new config file is
loaded before the server starts initializing terrain. Also moved
DDProperties to another package alongside DDWorldProperties - that
required updating references in most of the mod's files.
2014-03-11 05:38:40 -04:00
SenseiKiwi
946ac37a27 Changes to Schematics
Added SK-RaceTheLight to our schematics. Changed the weights on
Cere-FloatingAltar and Cere-PuzzleWall to 75 (previously 100). Fixed
what appears to be a mistake pasted into ruins.txt and also updated it
for the latest dungeons.
2014-03-11 01:31:10 -04:00
SenseiKiwi
b393c763a9 Minor Change
Minor change to configuration explanation
2014-03-09 10:07:35 -04:00
StevenRS11
3b9b839b7d Merge pull request #142 from SenseiKiwi/master
Various Small Changes
2014-03-07 21:53:14 -05:00
SenseiKiwi
7b4d1cc2f1 Fixed Door Bug
Fixed the bug referenced in the previous commit that caused doors to
break instantly.
2014-03-07 22:21:34 -04:00
SenseiKiwi
576ac0aae2 Fixed Double Door Textures
Fixed the way textures are applied so that doors from our mod can appear
as double doors. Renamed door textures to be consistent with Minecraft
door textures. Got rid of a few obsolete textures. Unfortunately,
something broke with door blocks updating. I need to fix that in the
next commit.
2014-03-07 22:03:20 -04:00
SenseiKiwi
ee72f3248e Removed Corium Assets
Removed leftover assets for Corium
2014-03-07 21:38:15 -04:00
SenseiKiwi
db91dfce5a Minor Change
Minor spacing change @.@
2014-03-07 20:17:30 -04:00
SenseiKiwi
b68de9eabd Improved Door Code and Removed Hack
Improved some of our door code by giving some of our variables real
names. Also found a hack in BaseDimDoor.isDropped() and a strange
comment that said "I have no idea, but sometimes this is returned as the
blockID instead of metadata."  I finally figured out that due to some
random mistake introduced in another function, idDropped() sometimes
received a block ID instead of metadata, which is what that comment
referred to. I fixed the cause and removed the hack.
2014-03-07 20:16:28 -04:00
SenseiKiwi
89baf624eb Minor Improvements to Biomes
Shifted the duplicate code from our biome classes into a single parent
class. Also added checks so that Minecraft crashes if a biome ID
conflict occurs. This is to put an end to the recent streak of posts on
our MCF thread about people experiencing issues because DD and BoP have
conflicts out of the box.
2014-03-07 18:35:20 -04:00
SenseiKiwi
baa5555547 Fixing Build Issue with DDCommandBase
I copied two functions from CommandBase into DDCommandBase because their
absence is breaking our builds on Technic and Dryware Jenkins. I have no
idea why that's happening. My copy of MC's source code has those
functions in CommandBase and my code compiles without a problem.
2014-03-07 17:41:12 -04:00
SenseiKiwi
60c2cc4710 Dropped Support for Structure Gen Flag
Dropped support for Minecraft's structure generation flag because
several other mods ignore it and supporting it can give the appearance
that DD isn't working properly. We already have settings for disabling
gateways in our config file.
2014-03-07 15:15:22 -04:00