Commit graph

244 commits

Author SHA1 Message Date
StevenRS11
314b2dee04 Added method to return dungeons already generated. 2013-07-12 23:40:21 -04:00
StevenRS11
d6e7fbbde5 Reworked dimension population
other mods shouldnt attempt to generate in pockets/limbo now. Expect
pockets to gen 40x faster on hexxit
2013-07-11 23:58:59 -04:00
StevenRS11
33169dc2fb Renamed printAllLinkData and limbo decay 2013-07-11 20:42:57 -04:00
SenseiKiwi
63782c0fef Added Support for Arbitrary Entrance Directions
Changed SchematicLoader so that schematics that have entrances that are
not facing North will still be rotated properly. This involves a
workaround for transformMetadata() since it assumes schematics are
always saved "facing" North.

I've tested this and it's working perfectly, with one exception. If you
create a rift with dd-rift to a dungeon that wasn't saved pointing
North, the rifts sometimes appear beside the player, instead of in the
block where the player's head is. Sometimes you'll appear in the dungeon
facing the right way. Other times, you'll appear inside a wall adjacent
to the entrance or near the entrance facing the wrong way. I have not
managed to narrow down why this happens.
2013-07-09 03:47:28 -04:00
SenseiKiwi
efe5da2604 Overhauled SchematicLoader (again)
Rotations in SchematicLoader are understandable now. I changed all the
code to use transformPoint() and made sure that the rotations in there
are correct. Testing shows that rooms are being generated correctly. I
also edited portions of the code for clarity and removed some debug
prints. The loading process now allows permafabric to generate - it was
previously converted into regular fabric of reality.  For the moment,
the code is stuck to assume that the entry direction is North. I'll
remove that constraint in the next commit.
2013-07-09 00:50:06 -04:00
SenseiKiwi
c3c3611764 Minor Improvements and Debugging Tweaks
Minor improvements to the readability and performance of
SchematicLoader. Added a little temporary code for debugging purposes.
2013-07-07 19:59:04 -04:00
StevenRS11
1b9ba092a7 Merge branch 'master' of https://github.com/StevenRS11/DimDoors 2013-07-04 23:28:17 -04:00
StevenRS11
f489158a78 orientation fix attempt
Works only if .schematic faces north
2013-07-04 23:28:09 -04:00
StevenRS11
08c35d5183 Merge pull request #36 from nallar/patch-1
Actually log the error in onTickInGame, instead of printing a not-very-descriptive message.
2013-07-04 18:47:39 -07:00
StevenRS11
545c42cd07 removed debug 2013-07-02 23:51:12 -04:00
Ross Allan
e400794630 Actually log the error in onTickInGame, instead of printing a not-very-descriptive message.
Signed-off-by: Ross Allan <rallanpcl@gmail.com>
2013-06-30 20:53:02 +01:00
StevenRS11
aa2d369f3e Reimplemented wooden warp door gen 2013-06-30 00:24:44 -04:00
StevenRS11
c444515907 Flipped east/west rotation 2013-06-27 01:03:09 -04:00
SenseiKiwi
70dabe5c5c Merge remote-tracking branch 'upstream/master' into R1.4.0-improvements 2013-06-26 23:54:27 -04:00
SenseiKiwi
77b3dba7be Partially Fixed Rotation Bugs
It turns out my earlier commits didn't completely fix things because
certain implementation details were missing. I had assumed they were
done. Also, some of the information I had regarding the default
schematic orientation was wrong. This commit remedies most of those
problems with a robust rotation implementation. However, I haven't added
the code for linking Warp Doors yet, and there is a bug with tile
entities getting reversed in East/West oriented rooms. Not sure why
that's happening.
2013-06-26 23:54:06 -04:00
StevenRS11
b1e18b564e Made it prettier 2013-06-26 22:28:57 -04:00
StevenRS11
1895633608 Added rotation helper class 2013-06-26 22:22:02 -04:00
SenseiKiwi
949ae5707d Minor Fix
Fixed variable initialization to keep the compiler happy.
2013-06-26 01:19:28 -04:00
SenseiKiwi
6c64b111de Renamed Variable
Renamed incomingLink as "entrance". There!
2013-06-26 01:16:29 -04:00
SenseiKiwi
b0edafa81e Fixed Rotation in SchematicLoader
It turns out that rotation hadn't been implemented in the code I moved
during my last commit. I've changed things slightly to implement
rotation. I also renamed some coordinate variables to prevent confusion.
2013-06-26 01:13:27 -04:00
SenseiKiwi
471114415b Fixed Rotation in SchematicLoader
Fixed reference to CommandRegenPocket - should be CommandResetDungeons.
Autofixed indentation in SchematicLoader. I wanted to commit that change
before doing any more code changes but I forgot. Then I fixed the code
that calculates the coordinate offsets so our dungeons rotate right. It
was pretty simple - all I had to do was move the xCooe and zCooe
calculations into the loops so they're recalculated to account for
rotation. I rearranged the loops for optimal performance.
2013-06-26 00:45:20 -04:00
SenseiKiwi
6e3c93fa17 Temporary Fix to Commands
Temporarily patched up CommandDeleteAllLinks,
CommandDeleteDimensionData, and CommandDeleteRifts so they'll compile.
I'll be fixing some things for Steven and I'll come back to those
classes to finish overhauling them.
2013-06-25 23:24:21 -04:00
SenseiKiwi
9e0fb946f2 Merge remote-tracking branch 'upstream/master' into R1.4.0-improvements 2013-06-25 23:18:17 -04:00
StevenRS11
a499ca4213 rewrote schematicLoader 2013-06-25 22:10:15 -04:00
SenseiKiwi
ad0e2cbe61 Improved CommandPruneDimensions
Improved CommandPruneDimensions. Cleaned up the code and improved
performance by using a HashSet instead of an ArrayList to list dimension
reachability. Added an optional argument that sets whether we should
delete the folders of pruned dimensions.
2013-06-25 20:54:58 -04:00
SenseiKiwi
d15f372c59 Improved and Renamed CommandRegenPocket
Renamed CommandRegenPocket to CommandResetDungeons. Changed command name
accordingly. Added a message for the user listing the number of dungeons
that were reset. Modified DimHelper slightly to add support for this.
Added error condition if user specifies arguments for the command.
2013-06-25 14:28:11 -04:00
SenseiKiwi
e0ccb59d15 Merge remote-tracking branch 'upstream/master' into R1.4.0-improvements 2013-06-25 13:55:34 -04:00
SenseiKiwi
bc2745a596 Partial Overhaul of Commands
Made progress on overhauling and prettifying our commands. There are
still more changes to be done for this to be functional. I need to do an
intermediate commit because I want to merge in recent changes by Steven.
2013-06-25 13:55:13 -04:00
StevenRS11
60972eab21 Prevented 'overworld not loaded' crash, temp fix 2013-06-25 09:15:19 -04:00
StevenRS11
5b53399432 removed regen command pending schematicLoader 2013-06-25 00:00:58 -04:00
StevenRS11
78aefb1547 Fixed rift doors not going away. 2013-06-24 20:08:08 -04:00
StevenRS11
06a8abbf74 Added regen dungeon command & removed hasMark 2013-06-24 01:40:56 -04:00
StevenRS11
8bbd1384c5 finished changes to monolith spawning 2013-06-24 00:34:21 -04:00
StevenRS11
e847794e8d fixed save killing change, awaiting further fix 2013-06-24 00:11:14 -04:00
StevenRS11
d5caa918c8 monolith spawning via end portal frame blocks 2013-06-23 23:49:54 -04:00
StevenRS11
ea74f712fd Re-worked monolith spawning code
Looks from the top of the world down now, should be more consistent.
2013-06-23 22:34:53 -04:00
SenseiKiwi
7a90dcb28b Improved PocketGenerator
Improved code in PocketGenerator. Restricted Monolith generation to the
chunk in which populate() is being applied. We should not be generating
Monoliths outside that chunk. Changed condition that would exit the
function if the next available space for a Monolith was above Y = 245.
Exiting the function at that point made no sense.

I've realized that this placement algorithm has probably been patched up
several times and that's resulted in nonsensical code. For instance, the
loop continues as long as you continue finding higher points to place
Monoliths. That would suggest you intended to make columns of them. But
since the loop chooses random columns on each iteration goes back to Y =
0, you're really just jumping around and placing Monoliths in random
places, while using irrelevant checks to decide whether to continue. I
really recommend coming up with a different algorithm. I haven't
replaced it completely in case it would break something.
2013-06-23 16:17:04 -04:00
SenseiKiwi
1ca11f4df3 Removed Recursion from PocketGenerator
Rewrote PocketGenerator.populate() to remove the recursive call to
itself.
2013-06-23 03:03:40 -04:00
SenseiKiwi
ffcb3aa74a Minor Change
Completed renaming pocketGenerator as PocketGenerator.
2013-06-23 02:54:28 -04:00
SenseiKiwi
c6e6ff6db2 Minor Change
Just need to make an intermediate commit for renaming PocketGenerator.
Technical issues...
2013-06-23 02:53:10 -04:00
SenseiKiwi
0a6f6c9615 Cleaned up PocketGenerator
Cleaned up some of the code in PocketGenerator. Seeded the generation of
Monoliths as a function of the world seed. All of our randomized
selections should be functions of the world seed so people can exchange
seeds with cool DD features. I will rename the file to have proper
capitalization in the next commit. Then I have to fix Monolith spawning.

Also, don't use recursion as a way to loop functions if you could simply
have a loop. I'm referring to the way PocketGenerator.populate() calls
itself. Completely unnecessary.
2013-06-23 02:49:25 -04:00
SenseiKiwi
82b8c93c8b Minor Change to DungeonHelper
Minor change to DungeonHelper. Added the dash character to the
characters allowed in schematic names.
2013-06-22 19:14:17 -04:00
SenseiKiwi
bbb39da808 Fixed Bugs in DungeonHelper
1. Added converting dungeon type names to lowercase before adding them
to dungeonTypeMapping (a HashMap that associates dungeon type strings
with their lists). Keeping the original casing was causing a
NullPointerException when the HashMap returned null and we expected to
receive a non-null list.
2. Added code to strip out the file extension of a schematic in
validateSchematicName(). The extension was getting dragged along with
the dungeon's weight, which would cause parsing to fail and the name was
considered invalid. This means that none of the custom dungeons were
being registered for generation since the system saw them as badly
tagged. They also wouldn't generate Monoliths even if tagged as closed
because we would ignore the tags.
3. Changed a comparison for the "open" tag to be case insensitive.
4. Minor changes
2013-06-22 14:27:59 -04:00
SenseiKiwi
248f14971e Fixed Empty Dungeon Guide Bug
Fixed the bug that caused "How_to_add_dungeons.txt" to be copied as an
empty file. The reason was very subtle. Also moved the file to a
different directory.
2013-06-20 04:47:16 -04:00
SenseiKiwi
58b72b3b5a Added temporary debug prints to copyfile
Added temporary debug prints to copyfile
2013-06-20 03:31:40 -04:00
SenseiKiwi
7e76ccebfb Added Rift Blade Rift Creation Setting
Added a property in our config that enables or disables the Rift Blade's
ability to create new rifts. It can still open existing rifts even if
that ability is disabled. I tested that to be certain. If the ability is
disabled, the Rift Blade blocks on right-click instead of charging like
a bow.
2013-06-18 23:04:36 -04:00
SenseiKiwi
cac45814a9 Merge remote-tracking branch 'upstream/master' into R1.4.0-improvements 2013-06-18 22:43:15 -04:00
SenseiKiwi
6393c240d6 Fixed minor bug
Fixed a mistake with the schematic paths of somethingBroke and defaultUp
- they were written incorrectly and so they would never load properly.
2013-06-18 22:39:03 -04:00
StevenRS11
77965d7d0d Patched bug with dungeon selection on old worlds 2013-06-18 18:08:19 -04:00
SenseiKiwi
a628f3c63b Fixed Bug in RiftGenerator
Fixed a small bug. DDProperties.WorldRiftGenerationEnabled is supposed
to control whether rifts and gateways generate outside of Limbo. I
assume that rifts and gateways are always supposed to generate in Limbo
given the wording of that description. However, if the flag was set to
false, we would also disable rift generation in Limbo. I've fixed this
by ignoring that flag if we detect that the chunk is in Limbo.
2013-06-18 13:34:03 -04:00