Commit Graph

43 Commits

Author SHA1 Message Date
CannibalVox
bb2525d94e Moved the onlogin network message to do what it should have been doing 2015-03-12 12:16:39 -05:00
CannibalVox
7e8b682c23 Unload dimensions on discon, don't freak out on TE load if dimensions
aren't there
2015-03-12 11:33:33 -05:00
CannibalVox
43e67bdbd3 Don't crash server on startup trying to use sounds 2015-03-10 10:48:36 -05:00
CannibalVox
c72a03b558 Fixed limbo music 2015-03-10 04:03:45 -05:00
CannibalVox
22654722b6 Turns out items have to be registered now & other spot fixes 2015-03-07 02:20:06 -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
StevenRS11
7c7129914a Merging murder 2014-07-16 10:24:24 -05: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
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
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
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
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
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
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
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
3fcc55b5e1 finished networking changes for locks 2014-05-22 00:15:27 -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
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
19bc9eec99 I HATE YOU GITHUB 2014-03-26 23:19:56 -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
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
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
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
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
4ec84f9b86 Fixed NPE in EventHookContainer
Fixed an NPE that would occur because mod_pocketDim.deathTracker was set
to null before the last onWorldSave event was triggered when a server
was shutting down.
2014-03-05 21:53:50 -04:00
SenseiKiwi
6152f39791 Changes to EventHookContainer
Added code to save DeathTracker data when then Overworld saves, but only
if it's been modified since the last time it was saved. Also changed how
we handle player deaths in pocket dimensions. Now we have two death
handlers. There is a high-priority one that sends players to Limbo only
when Limbo preserves their inventories. The other is a low-priority
handler that sends players to Limbo only when inventory preservation is
disabled. This gives players a chance to keep their inventories if
another mod would have revived them without that penalty.
2014-03-05 21:32:52 -04:00
SenseiKiwi
310efb9781 Changes to Rift Regeneration
Moved a little of the regeneration code to BlockRift to reduce duplicate
code. Changed RiftRegenerator to iterate over loaded worlds instead of
all worlds. Removed forced rift generation call in
EventHookContainer.onWorldLoad() - I feel it would have minimal
benefits. Rifts now drop World Thread upon regeneration. Generally
cleaned up the code in FastRiftRegenerator and RiftRegenerator.
2014-03-04 06:41:36 -04:00
SenseiKiwi
175fa41318 Disabled Nether Gateways
Disabled Nether Gateways temporarily pending their completion
2014-03-04 04:40:40 -04:00
SenseiKiwi
93f2f6c701 Added Config Settings for Nether Gateways
Added config settings for the chance of generating a Rift Gateway in a
Nether Fortress. Also made it so that DD does not override Nether
Fortress generation if fortress gateways are disabled in some way.
2014-03-04 04:39:57 -04:00
SenseiKiwi
78d7db0f75 Implemented Nether Gateways
Completed Nether gateways as part of Nether fortresses.
2014-01-28 07:02:11 -04:00
StevenRS11
d921982c75 Added ability to place vanilla doors on rifts 2014-01-26 03:28:27 -05:00
StevenRS11
12225d8214 fixed limbo music 2014-01-26 02:05:47 -05:00
StevenRS11
b947154b2d Minecraft is stupid 2014-01-20 02:23:24 -05:00
StevenRS11
9fe071368e Working on rift remover strangeness 2014-01-19 22:15:12 -05:00
StevenRS11
8b108688f1 Clear status effects when entering limbo 2014-01-19 03:21:34 -05:00
deathrat
505b182af9 Created build.gradle
Restructured folder structure for ForgeGradle

Signed-off-by: deathrat <deathrat43@gmail.com>
2013-12-17 03:36:38 -05:00