Commit graph

442 commits

Author SHA1 Message Date
CannibalVox
a0cf769bda More schematic fixes 2015-03-05 15:52:15 -06:00
CannibalVox
43c606c687 Some schematic fixes 2015-03-05 15:47:06 -06:00
CannibalVox
2a5774d477 Updated most of the networking code... a lot of it is probably broken
still
2015-03-05 15:28:37 -06:00
CannibalVox
c075079630 Fix sounds & last of the low-hanging fruit 2015-03-04 04:09:48 -06:00
CannibalVox
fe40edf200 More low-hanging fruit. 2015-03-04 01:10:39 -06:00
CannibalVox
63b0547069 Update low-hanging fruit to 1.7.10 2015-03-04 00:43:28 -06:00
StevenRS11
7b77b268bf rift render growth and removal 2014-08-21 18:42:24 -05:00
StevenRS11
910f991734 render color final 2014-08-20 22:55:29 -05:00
StevenRS11
a55fdbfd0f rift render canidate 2014-08-20 21:44:16 -05:00
StevenRS11
0dd1f1b293 more changes 2014-08-20 17:15:04 -05:00
StevenRS11
dc7a19c2f3 render effect iteration 2014-08-20 16:58:52 -05:00
StevenRS11
04ec4b3d2d jitter together! 2014-08-19 18:50:18 -05:00
StevenRS11
68ff8f6921 Added triangulation library and rift render
Major change is addition of fractal rift rendering, currently first
pass.

Curves are registered and pregenerated in mod_pocketDim.

Rifts look up these curves, choose one, rotate it, and render it.

The render is a TESR that does stuff. Hard to explain, look at
RenderRift in the code and look at the actual rifts in game to get an
idea of what it does.

I had to add a triangulation library to accomplish this. Will hopefully
do something else  that drag around all this.

(I tried(and used comments))
2014-08-19 17:36:07 -05:00
StevenRS11
499c7d91d8 Formatting change
Aformentioned merge wouldnt commit for some reason

PLEASE REVIEW THIS AND THE PREVIOUS COMMIT
2014-07-16 10:41:27 -05:00
StevenRS11
7c7129914a Merging murder 2014-07-16 10:24:24 -05:00
SenseiKiwi
20db828ac0 Fixed Crash on Rift Removal
Fixed a crash from manipulating rift data on the client side. I let this
happen because it seemed like TileEntityRift already did that before.
This crash also exposed another issue: that server-side functions are
being used on the client side. I'm not sure how pervasive this is but
some client dimensions are being constructed with the server-side
constructor.
2014-07-15 14:51:46 -04:00
SenseiKiwi
e793493331 Fixed Eager Dimension Data Creation
1. Fixed a design flaw in PocketManager. We originally assumed that all
requests to PocketManager.getDimensionData() had to be legitimate
requests for dimensions that existed. That was true in most cases, but
for things like processing user commands, it was dangerously optimistic.
It was possible that a flaw in DD's usage of that function could be
exploited by a player to trick the mod into pre-registering dimension
data for a non-existent dimension. That would declare the dimension as a
root. DD would crash later if Forge ever allocated that ID for a pocket
dimension. The new implementation is almost the same as the old one, but
allows us to differentiate between cases when we can eagerly create
dimension data, and cases in which the absence of a dimension should
cause a crash to alert us of a design flaw.
2. Remove the pocket regeneration code from PocketBuilder. We simply
don't support pocket regeneration and it's unlikely it'll ever be
implemented because it's a difficult issue. Wiping out pockets
completely is easier. We can always recover the code from this commit if
it's needed later.
3. Minor changes: removed some debug prints from PocketManager and
changed some static accesses in PocketBuilder.
2014-07-13 20:03:00 -04:00
SenseiKiwi
8544aa17ee Fixed Crash on World Creation
Fixed an issue. DD would crash when MC created a completely new world
because onChunkLoad() would be called before onWorldLoad(). That's not
the usual order. PocketManager would be unloaded at that point and would
return a null dimension.
2014-07-13 14:22:23 -04:00
SenseiKiwi
b20a0a74d2 Minor Change
Autocorrected indentation in PocketManager. I'll be working on changing
PocketManager to prevent the risk of creating data for a non-existent
dimension through a bad call to getDimensionData().
2014-07-13 07:17:30 -04:00
SenseiKiwi
fb1713ae0e Improvements to TileEntityRift
Made some improvements to TileEntityRift. The main reason for these
changes was to remove the field nearestRift - we should not hold on to
references to links. Now we simply track the location of the nearest
rift. I also confirmed that closeRift() and updateNearestRift() must be
allowed to run on both the client and the server. If the client doesn't
run those functions, then adjacent rifts don't connect as expected and
the rift removal animation doesn't work.
2014-07-12 03:36:56 -04:00
SenseiKiwi
2c7435585d Minor Changes
Removed a pointless check in yCoordHelper and corrected some comments in
RiftRegenerator. It turns out that ChunkProviderServer.chunkExists()
returns whether a chunk is loaded, not whether it has already been
created.
2014-07-11 15:44:01 -04:00
SenseiKiwi
107aa4b7f2 Cleaned up Transdimensional Trapdoor Code
Removed unnecessary code for the Transdimensional Trapdoor. Most of it
was code dedicated to updating TileEntityTransTrapdoor.hasRift. That
flag was never used for anything.
2014-07-11 04:33:19 -04:00
SenseiKiwi
1bf1f4f78c Improved Regeneration Code
1. Added code so that Transdimensional Trapdoors detect that they have
been broken and schedule rift regeneration at their location. This had
previously been neglected. Trapdoors deserve a little more attention.
2. Tweaked the breakBlock() code for BlockRift and BaseDimDoor so that
rift regeneration is only scheduled if the underlying block was removed.
We don't want that to happen if the only change was for metadata.
2014-07-11 04:10:12 -04:00
SenseiKiwi
29c8a09218 Improved Door Code
1. Removed code from BaseDimDoor that was already implemented almost
identically in BlockDoor. Clarified some uses of setBlock() by changing
them to setBlockToAir() instead.
2. Removed TileEntityDimDoor.invalidate() and moved the regeneration
scheduling code to BaseDimDoor.breakBlock(). I would prefer to move away
from overriding the invalidate() method. This also simplifies the code
since we don't need to perform some of the checks we had in
breakBlock().
2014-07-11 03:44:26 -04:00
SenseiKiwi
71e7fdaafc Implemented Regeneration for BlockRift
1. Made it so that rifts regenerate when rift blocks are replaced by
other blocks.
2. Changed the rift regeneration scheduling functions to streamline
their use in other classes. Common code that was needed to validate
links before calling those functions has been moved into them so that
the checks are always performed internally.
2014-07-11 03:26:40 -04:00
SenseiKiwi
1f59dc17d9 Implemented Scheduled Rift Regeneration
1. Implemented scheduled rift regeneration in RiftRegenerator. The
previous randomized selection algorithm has been removed completely. All
regeneration is scheduled now. We perform numerous checks to make sure
that regenerating a rift is safe.
2. Removed FastRiftRegenerator as RiftRegenerator performs roughly the
same task but with more flexibility. Updated TileEntityDimDoor to use
RiftRegenerator instead for creating rifts when doors are broken.
3. Modified EventHookContainer to receive the chunk loaded event. We
iterate over the list of links in a loaded chunk and schedule them for
regeneration.
4. Reorganized the code in BlockRift. Divided the list of immune blocks
into two lists - one for DD blocks and one for regular MC blocks.
RiftRegenerator has to be able to distinguish between the two types.
5. Factored out some duplicate code from ItemRiftSignature and
ItemStabilizedRiftSignature. Most of the block immunity checks were used
to check if it would be safe to spawn a rift when using one of those
items. BlockRift.tryPlacingRift() covers all that logic in a single
function and makes the item code a little simpler.
2014-07-11 01:21:43 -04:00
SenseiKiwi
79bd5102ba Minor Changes
Minor changes to DimLink to simplify DimLink.getDestinationOrientation()
and to clarify the output of DimLink.toString() when no destination is
available.
2014-07-10 18:29:48 -04:00
SenseiKiwi
b197237dfd Minor Change
Rewrote the NewDimData.deleteLink() version that would accept x, y, and
z as parameters. There was some redundant code for getting the
parameters from a Point4D instance just to create another one to find
the target link. Now we pass the source point in directly.
2014-07-10 18:25:41 -04:00
SenseiKiwi
85ff28298e Implemented Chunk-Links Mapping
Implemented support for tracking the list of links in each chunk in a
dimension. This will be used for scheduling rift regeneration when
chunks load.
2014-07-10 18:21:10 -04:00
SenseiKiwi
782c6d5e50 Minor Changes to NewDimData
Made some minor changes to NewDimData. Fixed some comments for the rift
search functions that incorrectly indicated the search would not detect
rifts adjacent to the center of the search range. That behavior changed
some time ago. Also added an unused field called "chunkMapping" for
associating chunks with lists of links. It'll be used for implementing
queuing of rift regeneration when chunks load.
2014-07-10 17:13:10 -04:00
SenseiKiwi
c00c65eeee Reorganized Tick Receivers
1. Reorganized our code to initialize tick receivers each time the
server starts rather than once when the mod is initialized. This is
needed because reusing a single instance of each class across different
single-player sessions could cause scheduled events for one world to
leak into another world. This approach ensures that we discard all
pending events.
2. Separated the implementation of Limbo decay from a tick receiver that
periodically triggers fast decay. All of the decay code has been kept in
LimboDecay, while the ticking is handled by LimboDecayScheduler. This
change separates some functionality that should be independent, but
also, it's needed so that BlockLimbo can have access to LimboDecay's
methods without holding on to a tick receiver instance.
3. Minor change: renamed ChunkLoaderHelper.loadChunkForcedWorlds() to
loadForcedChunkWorlds().
2014-07-10 15:11:44 -04:00
SenseiKiwi
c22479c0e8 Tick Handler Changes
1. Renamed CommonTickHandler to ServerTickHandler. Given that it only
handles server ticks, this seems like a reasonable name. Also changed
its profiler label to the new name.
2. Deleted ClientTickHandler and removed any references to it in
mod_pocketDim. It was never used for anything.
2014-07-10 08:28:42 -04:00
SenseiKiwi
8da0339c78 Improved DDTeleporter
Made various changes to clarify code in DDTeleporter. For instance, we
had a whole switch block that was used to give the same outcome on every
case except the default. I rewrote the code there to remove the block.
Also changed DDTeleporter.checkDestination() since it was redoing the
destination orientation checks unnecessarily, changing the entity's yaw
when it shouldn't have side effects, and some other little things.
2014-07-09 23:44:49 -04:00
SenseiKiwi
83998969f6 Fixed Version in mod_pocketDim
Forgot to change the placeholder in mod_pocketDim
2014-07-09 15:14:56 -04:00
SenseiKiwi
2904ec146d Implemented Automatic Versioning in Build Script
1. Changed build.gradle so that it edits the version numbers in
mod_pocketDim.java and mcmod.info.
2. Changed mod_pocketDim to use a placeholder for its version number and
fixed an annotation that was wrong. It would cause our mod_pocketDim
instance to not initialize properly. I removed what seemed to be
workarounds that were hiding the problem.
3. Fixed space in TileEntityDimDoor.invalidate() and corrected a
non-static access to a static field in mod_pocketDim.
4. Changed mcmod.info so that it users placeholders for the mod version
and MC version values.
2014-07-09 04:01:37 -04:00
SenseiKiwi
7d840ff895 Fixed Pick Block Results
We previously returned the Vanilla counterparts to our doors as the
items to be used by the pick block button - used in Creative mode for
replicating nearby blocks. This was incorrect because we would want to
return the actual door item needed to place the particular door in
question.

More importantly, this might solve our issues with WAILA reporting the
wrong information when players look at our doors. I read the code for
the most recent version of WAILA and it uses various functions to choose
how to identify a block. The result of Block.idPicked() is probably used
as the main source for the identities of our blocks.
2014-07-06 04:31:42 -04:00
SenseiKiwi
52bae00dc6 Minor Change
Minor change to remove a warning
2014-07-06 04:01:07 -04:00
SenseiKiwi
dc55359aaf Minor Changes
Made various minor changes to eliminate warnings or to improve clarity.
2014-07-07 03:56:47 -04:00
SenseiKiwi
58d5f6dd14 Minor Changes
Minor annotation changes to remove some warnings... and keep up my
GitHub spree.
2014-07-07 01:59:26 -04:00
SenseiKiwi
06cf72f9f7 Fixed Flawed Link Redirection
Fixed the way in which we handle redirecting links to blacklisted
dimensions. The previous method always converted links into safe exits.
This lead to strange situations that could be seen as bugs. For
instance, using a dungeon entrance in a root dimension would generate an
exit door and a supporting platform directly above the entrance door.
That also meant that any visited dungeons would be unusable if they were
reset.

We now do different things depending on the location of the link and its
type. If the link is a dungeon link, then its destination is reset to
allow a new dungeon to form. For other link types, if the link is in a
pocket dimension, then it becomes a safe exit link, because it could be
the only way out. If it's in a root dimension, then there are no
reasonable destinations, so the teleport request is cancelled.
2014-07-05 21:28:10 -04:00
SenseiKiwi
100fa38c52 Minor Changes to DDTeleporter
Made some minor changes to DDTeleporter to get rid of a few warnings.
Also tweaked and commented DDTeleporter.initializeDestination(). There
were inappropriate references to a link's internal variables instead of
using its getters and there was a subtle link overwrite for blacklist
destinations. Without comments, it would probably be unclear that
overwriting that link is safe. This changes are in preparation for
fixing issues with blacklisted destination redirection.
2014-07-05 14:18:18 -04:00
SenseiKiwi
17a770eaf0 Minor Change
Added two comments to CommandTeleportPlayer
2014-07-04 20:55:57 -04:00
SenseiKiwi
16f0a8303a Rewrote CommandTeleportPlayer
Rewrote CommandTeleportPlayer for the same reason as usual. There were a
few bugs before, such as that lookups for players were limited to within
the world from which the command sender was using the command. Players
in other dimensions could not be teleported. The command would also
place people in the ground because it did not adjust its coordinates for
the way that DDTeleporter interprets them - as the location of the top
block of a door and the player's head.
2014-07-04 20:20:46 -04:00
SenseiKiwi
1e3b32a15c Minor Change
Removed a reference to CommandDeleteAllLinks from mod_pocketDim.
2014-07-04 14:06:41 -04:00
SenseiKiwi
4d53ae5f6a Removed CommandDeleteAllLinks
I removed CommandDeleteAllLinks because of the significant risk that it
would harm a server. It's possible that someone could run this by
accident instead of CommandDeleteRifts. It takes the same arguments or
even no arguments and it would immediately wipe all links in a
dimension. We can restore it later if it's really needed.
2014-07-04 13:53:44 -04:00
SenseiKiwi
d3860119e9 Minor Change to PocketManager
Added a minor check to PocketManager.loadDimension() so that an attempt
to load an unregistered dimension won't be passed on to Forge where it
would cause an exception - which is then caught by Forge before it can
cause problems. This isn't strictly necessary, but it's a nice
consideration.
2014-07-04 13:05:08 -04:00
SenseiKiwi
f64768ed16 Rewrote DeleteFolder
Rewrote the helper class DeleteFolder. It was leaving behind empty
directories when pockets were deleted.
2014-07-04 02:14:24 -04:00
SenseiKiwi
c1e58c25cc Increased Max Monolith Aggro
Increased the maximum Monolith aggro level and the cap range values by a
factor of 1.25. The max aggro increase is to slow down how long it takes
Monoliths to max out because they're just a little too fast right now.
The cap adjustments will preserve the range of texture states they can
have while idling.
2014-07-04 01:17:25 -04:00
SenseiKiwi
805e9dd040 Minor Changes
Fixed up a few spots to clear some warnings.
2014-07-03 22:49:15 -04:00
SenseiKiwi
972a67de76 Rewrote CommandResetDungeons
1. Rewrote CommandResetDungeons to improve clarity and remove bugs. This
version of the command preserves valid links. Those were previously
removed, which would break some dungeons unnecessarily.
2. Fixed NewDimData.setParentToRoot(). The function did not account for
the possibility that the target's parent might still exist and would
need to be updated, leading to conflicting data. It also did not reset
pack depth. We now correctly update a dimension and all its descendants.
2014-07-03 22:46:31 -04:00
SenseiKiwi
592aabf627 Minor Change
Added a comment in PocketManager to explain why we don't unregister
pocket dimensions with Forge when we delete them.
2014-07-03 17:32:40 -04:00
SenseiKiwi
b4a58f5c88 Simplified PocketManager
1. Rewrote or removed a few bits that were causing minor warnings.
2. Rewrote deleteDimensionFiles() and deleteDimensionData() to remove
unnecessary casts and checks. We can confirm that those checks are
unnecessary because those functions are only used inside PocketManager.
If they were ever exposed externally, then we would need to add checks
again.
2014-07-03 17:20:59 -04:00
SenseiKiwi
80bb87dac6 Rewrote CommandDeleteRifts
Rewrote CommandDeleteRifts for clarity and to remove several flaws.
Previously, the command would have removed non-immune blocks that were
in the same location as a rift. It also set blocks in the command
sender's dimension rather than the target dimension, so blocks would
have potentially disappeared from the wrong world.
2014-07-03 14:19:08 -04:00
SenseiKiwi
c5a77268fc Changes to Commands
Removed a few server-side checks that I missed on the previous commit.
2014-07-03 14:08:51 -04:00
SenseiKiwi
262595ff4d Changes to Commands
1. Fixed some warnings in the affected commands.
2. Removed checks for whether a command is running on the server or
client side. We have performed those checks inconsistently throughout
our commands without problems. I assume that they must be running on the
server side only. If I'm wrong, we can add a check to DDCommandBase.
3. Minor punctuation change in DDCommandResult
2014-07-03 12:25:00 -04:00
SenseiKiwi
c29db9b729 Minor Changes
Cleaned up the code in DDCommandBase a little.
2014-07-03 12:02:36 -04:00
SenseiKiwi
ec290b0dc1 Increased Version Number
Increased the mod's version number to account for recent fixes and small
features.
2014-07-02 13:59:55 -04:00
SenseiKiwi
3d88e72ecb Fixed Bugs in Golden Dimensional Doors
1. We weren't giving old tickets to the doors that owned them. That
would result in doors requesting new tickets and the old ones wouldn't
be released. Each time a server rebooted, a new ticket would be created.
Then Opis would report that many chunks were forcefully loaded in a
pocket because it doesn't consider overlapping tickets. We now give
doors their old tickets when they're reloaded and we release extra
tickets referring to the same door. That will also deal with the excess
tickets that already exist on servers.
2. Rewrote the logic for checking if a Golden Dimensional Door is
allowed to force-load a pocket. We now check if the door is within the
horizontal bounds of the pocket. This prevents the confusing scenario
where someone places a door far away from the pocket but the only chunks
affected are in the pocket.
3. Fixed the calculation for determining which chunks must be
force-loaded to cover a pocket. This has the benefit that fewer chunks
should need to be loaded. It should be enough to load 16 chunks. We
previously loaded 25 chunks just to err on the side of caution.
4. Golden Dimensional Doors only try to initialize as chunk loaders
once. We previously allowed them to keep trying every tick until they
could get a ticket.
2014-07-02 13:38:57 -04:00
SenseiKiwi
b2e086e7c1 Added the Universal Limbo Setting
Added the Universal Limbo config option to the world config settings.
When enabled, it causes players to get teleported to Limbo if they die
in any dimension except Limbo. It's disabled by default.

This feature was requested by Mr_Turing.
2014-07-01 21:55:57 -04:00
SenseiKiwi
e3665c09dd Added Hunger Restoration on Limbo Respawn
Added code to EventHookContainer.revivePlayerInLimbo() so that the
player's food level is restored upon respawning in Limbo. Apparently it
was possible for players to have death loops from starving to death in
Hardcore Limbo.
2014-06-28 13:06:22 -04:00
StevenRS11
fb4643d7cf deleted renderRift 2014-06-27 16:27:23 -04:00
StevenRS11
5ba58dc91b Merge remote-tracking branch 'origin/master' into StevenRS
Conflicts:
	src/main/java/StevenDimDoors/mod_pocketDim/CraftingManager.java
	src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java
	src/main/java/StevenDimDoors/mod_pocketDim/core/DDTeleporter.java
	src/main/java/StevenDimDoors/mod_pocketDim/core/DimLink.java
	src/main/java/StevenDimDoors/mod_pocketDim/items/ItemRiftSignature.java

	src/main/java/StevenDimDoors/mod_pocketDim/items/ItemStabilizedRiftSignature.java
	src/main/java/StevenDimDoors/mod_pocketDim/mod_pocketDim.java
	src/main/java/StevenDimDoors/mod_pocketDim/world/PocketBuilder.java
	src/main/java/StevenDimDoors/mod_pocketDimClient/RenderRift.java
2014-06-27 16:26:46 -04:00
SenseiKiwi
42568a1864 Removed RenderRift
Removed the RenderRift class since it relates to unused functionality
and references fields that I removed from TileEntityRift.
2014-06-26 12:20:19 -04:00
SenseiKiwi
e40168954f Minor Change to TileEntityRift
Changed the function call for playing the rift-closing sound to match
other similar calls in Minecraft - the sound should target the center of
the block. I also switched the last flag argument. It seems to determine
whether distance between the player and the source should be checked
when playing back the sound, although documentation is lacking so I
can't be sure. Other blocks that use that function use "false", while
things involving sounds that should be heard uniformly, such as
rainfall, use "true".
---
I noticed that this code runs on the client and server. Some parts
modify link data and rifts on the client side. We should really stop
this from happening as it could lead to inconsistencies.
2014-06-26 12:17:59 -04:00
SenseiKiwi
59f335ac8c Added Dispenser Support for SRS
Added support for using Stabilized Rift Signatures from dispensers under
specific conditions. Everything works except for playing the sound that
occurs when an SRS is used. Not sure why that's not working.
2014-06-26 12:11:51 -04:00
SenseiKiwi
444b862b12 Minor Change
Renamed the field mod_pocketDim.itemStabilizedLinkSignature to
itemStabilizedRiftSignature to follow the item's actual name.
2014-06-26 09:19:04 -04:00
SenseiKiwi
a0629b51a3 Improvements to TileEntityRift
1. Removed several fields and functions referring to the newer rendering
code. The functions were just cluttering up the code and the fields were
consuming additional memory that was never being used for anything.
2. Updated NBT reading and writing functions to give some tags proper
names and to remove references to unused fields.
Removed the tag for riftCloseTimer because it was unnecessary alongside
the shouldClose flag. If a server reboots while a rift is closing, the
rift can start over upon reloading.
3. Renamed some fields and functions to have better names.
4. Changed the various checks for closing rifts. There were a few
redundant parts. We don't have to put calls to "this.invalidate()"
everywhere on top of explicitly removing the tile entity and destroying
its block.
5. Rewrote update timing checks. The rift spread and Enderman spawning
calls have been separated to distribute the impact of updating a rift.
Also, a flaw in the timing logic meant that the calculations for
particle offsets would only run when a rift was first created. That's
been fixed.
2014-06-26 07:06:17 -04:00
SenseiKiwi
364ba11f81 Updates to TileEntityRift
1. Fixed the bug where the setting that controls whether Endermen can
spawn from rifts was being ignored. It was never checked at all.
2. Cleaned up some formatting and annotations.
3. Removed call to World.removeBlockTileEntity() following a call to
World.setBlockToAir(). The latter function already handles removing the
tile entity.
2014-06-26 05:40:35 -04:00
SenseiKiwi
96238d6b53 Minor Change
Minor spacing and annotation changes.
2014-06-26 04:52:32 -04:00
SenseiKiwi
448890207f Completed Changes to Stabilized Rift Signature
Completed the change to Stabilized Rift Signatures so that overwriting
links that already belonged to an SRS is done for free.
2014-06-26 04:52:03 -04:00
StevenRS11
46f55b22d9 restricted brightness inversion to dungeons only 2014-06-26 02:16:57 -04:00
StevenRS11
9baceb8e3c Added backwards light and bugfixes
Light in pockets is now reversed
added sound to lock removal
fixed monolith name
fixed other names
2014-06-26 00:08:20 -04:00
SenseiKiwi
fe035f6677 Renamed Function in NewDimData
Renamed NewDimData.setDestination() to setLinkDestination(). I realized
that the name was a little confusing at first sight - it confused me!
2014-06-25 20:15:43 -04:00
SenseiKiwi
4192270ef3 Changes and Fixes to Rift Signature Variants
1. Changed hasEffect() override since we were overriding a deprecated
version.
2. Fixed a bug where we checked if a block could be edited before
deciding whether to change the Y coordinate of the rift to be placed.
Sometimes we would place the rift in a different block. This is the
result of sticking in support for special blocks like grass and snow
without considering the impact on surrounding code. It also contradicted
comments that specifically said special blocks were ignored...
3. Cleaned up the code for checking for special blocks.
4. Fixed a bug in loading NBT data. There were no null checks on
orientation data. If a Rift Signature or Stabilized Rift Signature had
been created in a version of DD before orientations were set up, then it
cause an exception when so much as looked at in later versions of DD.
5. Partially implemented free redirects for Stabilized Rift Signatures.
The check to determine if a redirect is being done is missing.
2014-06-25 20:13:03 -04:00
SenseiKiwi
0029d9dac0 Reduced Usage of Stable Fabric
1. Changed the crafting recipes for most DD items to use Ender Pearls
instead of Stable Fabric. The items that still use Stable Fabric are
Dimensional Doors, Golden Dimensional Doors, Rift Blades, and Stabilized
Rift Signatures. Steven had already made this change in another branch
but I'd like to push this out with several bug fixes. The SRS recipe is
different from his version - it's now just 4 Iron Ingots and a Stable
Fabric.
2. Change Stabilized Rift Signatures back to consuming Ender Pearls
instead of Stable Fabric.
2014-06-25 19:00:41 -04:00
StevenRS11
eff8379325 Added lock removal ability to keys
also fixed a network bug
2014-06-25 17:46:33 -04:00
StevenRS11
96d84ed2fa Fixed Json Schema
The schema incorrectly listed the array of children in LinkData as an
Array of numbers, not an array of objects with properties.
2014-06-25 16:17:26 -04:00
StevenRS11
0f3d40ba60 Various
Finished implementing Personal Pockets
-any pocket created from within a personal pocket retains personal
status
-exit doors cannot be used in any personal pockets
-personal status is saved with dimData

fixed a bug that let trapdoors get around locks
fixed FoR not rendering properly
-inventory and world
2014-06-25 15:26:42 -04:00
SenseiKiwi
794310bd98 Fixed Max Stack Size of ItemGoldDoor
Changed the max stack size of ItemGoldDoor to 16 as it is for Vanilla
doors on some modpacks. Later versions of Vanilla have door stacking to
64 so this will need to change eventually.
2014-06-25 15:18:50 -04:00
SenseiKiwi
a4d0f39390 Minor Change
Cleaned up comments for BaseItemDoor.tryToPlaceDoor()
2014-06-25 15:08:30 -04:00
SenseiKiwi
e4e84644ac Changed Door Item Mapping Code
1. Changed EventHookContainer to remove a check against
BaseItemDoor.getDoorToPlace().  The checks performed there can be done
in BaseItemDoor.tryToPlaceDoor(), which removes the need for callers to
know more internal details about how doors are handled. I moved the
checks inside.
2. Renamed vanillaDoorMapping to doorItemMapping. It now maps dim door
items to themselves to remove the need for various checks we were
performing. Updated BaseItemDoor's constructor to reflect this change.
3. Removed BaseItemDoor.getDoorToPlace() and integrated its
functionality into BaseItemDoor.tryToPlaceDoor().
4. Changed BaseItemDoor.tryToPlaceDoor() so that it simply returns false
if a given item stack cannot be used to place any doors. We don't need
to check if the item is an ItemDoor or anything like that now.
2014-06-25 14:56:59 -04:00
SenseiKiwi
660ff4255e Code Cleaning
1. Cleaned up some spacing and unused imports in EventHookContainer.
Also changed an indirect reference to BaseItemDoor.trytoPlaceDoor() to a
direct reference seeing as the function is static and should be accessed
that way.
2. Renamed getDoortoItemMapping() to getDoorBlock(). The original named
had a minor capitalization mistake and implied that it would return a
mapping table or would associate doors to items. The function actually
associates items to door blocks.
2014-06-25 14:33:19 -04:00
StevenRS11
1410d4b251 made versioning slightly better 2014-06-25 14:13:49 -04:00
SenseiKiwi
161da193ad Merge remote-tracking branch 'upstream/master' 2014-06-25 14:04:56 -04:00
SenseiKiwi
4d39d13703 Changes to Monolith Behavior
1. Stopped Monoliths from teleporting players while in Limbo. This was a
serious issue on some modpacks if players got unlucky.
2. Decreased the required Monolith aggro level to start spawning
particles around a target player. The required level was so high,
combined with the current Monolith speed, that players would hardly see
the particles.
3. Disabled Monolith sounds in Limbo. Some of the sounds were really
annoying in Limbo. Usually they only get to play for a moment before a
player is teleported, but since no teleports occur in Limbo and the area
is full of Monoliths, the constant noise is aggravating. It would also
drown out the background music.
2014-06-25 14:04:08 -04:00
StevenRS11
18666f58b1 Added versioning to save files and DimensionType 2014-06-25 04:37:40 -04:00
StevenRS11
9e720cb458 Changed linkTypes to linkType, an enum 2014-06-25 02:12:07 -04:00
StevenRS11
968653e4ab fixed typo in DimDataProcessor and DungeonHelper 2014-06-20 14:13:33 -04:00
StevenRS11
eeb5f9aea1 added json validation for saves 2014-06-20 14:04:07 -04:00
StevenRS11
117ed69bf7 added dimdata schema 2014-06-20 13:46:36 -04:00
StevenRS11
0d53f6c029 Actually fix door crash 2014-05-31 06:43:28 -04:00
StevenRS11
dccb12116d Naming improvements
Clarified naming in DDLock and associated methods. Still not quite done.
2014-05-31 06:39:26 -04:00
StevenRS11
e8fa928c50 lock tweaks
Changed how locks are modified so all modifications occur through
NewDimData
2014-05-29 19:04:23 -04:00
SenseiKiwi
f9331e4f2d Merge remote-tracking branch 'upstream/master' 2014-05-29 17:20:30 -04:00
StevenRS11
7da3b7fc62 Patched a door crash bug
thanks LClouds
2014-05-26 22:23:36 -04:00
StevenRS11
77241e6f90 limbo fix 2014-05-26 22:14:20 -04:00
StevenRS11
844950b39e teaked personal pocket generation rules 2014-05-26 21:31:14 -04:00
StevenRS11
16d7bfcda6 personal pockets DONE 2014-05-26 19:38:01 -04:00
StevenRS11
d8fecd07b3 render tweaks 2014-05-22 01:48:21 -04:00
StevenRS11
86cfcdeee8 last few changes 2014-05-22 01:37:04 -04:00
StevenRS11
3f6e32dcbf last tweaks done 2014-05-22 01:03:17 -04:00
StevenRS11
3fcc55b5e1 finished networking changes for locks 2014-05-22 00:15:27 -04:00
StevenRS11
ef860e295e more stuffs
Lock render is still wip, as are most things. That said, I can render
monolith eyes anywhere now.
2014-05-20 19:13:26 -04:00
StevenRS11
8f9dfea947 added locking doors and cleaned up 2014-05-20 03:17:32 -04:00
StevenRS11
ac9b3d73e8 Various
Fixed bug in converting old saves
Started color work
2014-05-16 21:42:59 -04:00
SenseiKiwi
8d1028ccb5 Changes to CraftingManager
* Fixed a mistake in the crafting recipe for Golden Dim Doors
* Removed static import of fields from mod_pocketDim. There were already
qualified references to those fields in some areas. We should be
consistent.
2014-05-15 06:45:26 -04:00
StevenRS11
d020dd384b toString ftw 2014-05-15 05:53:28 -04:00
SenseiKiwi
3a2c87cce9 Tweaked Monolith Aggro Rate
* Decreased aggro rate to 3 to compensate for Monoliths pre-aggroing up
to aggroCap
* Clarified aggroCap selection
2014-05-06 03:32:14 -04:00
StevenRS11
03ab75b80c tweak 2014-05-06 03:32:14 -04:00
StevenRS11
f4efa7dca2 codemunching 2014-05-06 03:32:13 -04:00
SenseiKiwi
f427e66f6e More Changes to Monoliths
* Fixed issue with Monoliths detecting players through walls
* Changed aggro values from bytes to shorts
* Fixed aggro updates so that aggro levels can decrease
* Fixed upper bound on aggro clamping
* Added client/server-side checks to a few functions to save on
performing pointless checks, such as making calculations for spawning
particles on the server
2014-05-05 22:37:14 -04:00
SenseiKiwi
928adab4cf Minor Change in RiftRegenerator
Removed an unnecessary cast in RiftRegenerator
2014-05-05 19:56:21 -04:00
SenseiKiwi
ef2e9cc561 Merge remote-tracking branch 'upstream/master' 2014-05-05 19:55:43 -04:00
SenseiKiwi
7cabf75128 Overhauled Monoliths
Removed lots of obsolete and unused code from Monoliths. The code is
subdivided more clearly now. The aggro level is sent over a data watcher
instead of sending the texture state.
2014-05-05 19:55:16 -04:00
StevenRS11
9003d924ea Fixed Door Render 2014-05-05 19:10:58 -04:00
SenseiKiwi
b15a8af299 Minor Change
Minor change to a line in CustomLimboPopulator. We should access static
fields through their classes, not instances.
2014-04-30 04:40:33 -04:00
SenseiKiwi
871d2ff1c2 Fixed Golden Door Item ID Mishandling
Keybounce noticed that he was having a persistent item ID conflict with
DD's Golden Doors - the normal doors not the dimensional variant. I
discovered that we have been assigning them the same ID as the Golden
Door block ever since they were first introduced 7 months ago. It didn't
break immediately since Forge adds +256 to item IDs.
2014-04-19 04:28:12 -04:00
StevenRS11
3664e707cf Fixed minor issues
Doors render right now
No longer placing doors on left clicks
2014-04-15 07:27:08 -04:00
StevenRS11
be7cd9d186 More eye tweaks 2014-04-15 04:30:31 -04:00
StevenRS11
d86433ef46 fixed monoliths
everything was terrible
2014-04-13 23:52:51 -04:00
SenseiKiwi
ffe45c729e Fixed Bugs
* Fixed bug with backup directory creation
* Fixed two doorways in SK-FractalCage that were supposed to open but
had been replaced with Eternal Fabric
2014-04-13 16:57:11 -04:00
SenseiKiwi
4dca0eb82b Updated Version
Update our version numbers
2014-04-11 21:32:36 -04:00
SenseiKiwi
a2ef6ef905 Minor Change
Changed DDLogger.logger() to private to guarantee that the logger isn't
being used anywhere in DD, since that could impact performance on
servers.
2014-04-11 20:34:11 -04:00
SenseiKiwi
d192dae945 Improvements to Saving
* Changed saving code to create backups by moving existing files rather
than creating copies and deleting the originals.
* Removed final call to PocketManager.save() in PocketManager.unload().
Since we no longer check if the caller is the client or server and
unload() must be called from both, this prevents clients from trying to
save pocket data locally. A final save() call wasn't needed anyway.
2014-04-11 20:33:06 -04:00
StevenRS11
18460348af stopped logging 2014-04-11 19:27:26 -04:00
StevenRS11
56e522a61a logging changes 2014-04-03 20:15:34 -04:00
StevenRS11
d98b6279de quick fix 2014-04-03 15:55:35 -04:00
StevenRS11
99476f8d70 Merge branch 'master' of https://github.com/StevenRS11/DimDoors
Conflicts:
	src/main/java/StevenDimDoors/mod_pocketDim/saving/DDSaveHandler.java
2014-04-03 15:52:14 -04:00
StevenRS11
aa7ee3c8fe added logger 2014-04-03 14:10:00 -04:00
StevenRS11
41fbcfe0ff Savedata backs up on write now 2014-04-03 14:09:36 -04:00
StevenRS11
582db26cdc Fixed a crash in rift sig placement 2014-04-03 14:06:48 -04:00
SenseiKiwi
71fccfc1e4 Merge remote-tracking branch 'upstream/master' 2014-03-28 02:49:43 -04:00
SenseiKiwi
0491b55f40 Minor Change
Minor changes to comments
2014-03-28 02:31:29 -04:00
SenseiKiwi
cc2def03fd Added Dirty Flag
Added a flag to NewDimData so that we can avoid writing dimensions to
disk if they haven't been modified. They're still rewritten when the
server shuts down.
2014-03-28 02:07:20 -04:00
StevenRS11
41b77c639c Fixed Door on rifts 2014-03-28 00:39:27 -04:00
StevenRS11
19bc9eec99 I HATE YOU GITHUB 2014-03-26 23:19:56 -04:00
StevenRS11
76e9fce9d4 Fixed all doors being placed as dim doors 2014-03-24 21:09:21 -04:00
StevenRS11
42f0656b1b Changes
Made saving a bit more robust, now we only delete ones that where not
modified. Also overhauled door placement, its all handled by the
eventHandler now.
2014-03-24 20:58:36 -04:00
SenseiKiwi
d6b07db3d6 Fixed Conflict with Witchery Mod
* Changed DDTeleporter to stop us from generating exits to Witchery's
Spirit World - this would cause people to lose their items upon leaving
the dimension.
* Changed GatewayGenerator to stop us from generating gateways or rift
clusters in the Spirit World
2014-03-23 17:18:47 -04:00
SenseiKiwi
e5adb43f77 Updated How to Add Dungeons
Updated our dungeon creation guide. It was badly outdated by now.
2014-03-23 11:39:03 -04:00
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