Commit graph

442 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
6651559793 I MIGHT have copy/pasted this from starmall. 2015-03-12 11:12:51 -05:00
CannibalVox
d210b9b91c Register the dimensions early in the connection process so we can actually
log in and stuff.
2015-03-12 10:55:30 -05:00
CannibalVox
4f7e7a6925 Merge branch 'master' of github.com:CannibalVox/DimDoors 2015-03-12 06:36:54 -05:00
CannibalVox
41c88d1904 Personal dim door should require quartz doors, not gold doors. 2015-03-12 06:36:36 -05:00
DragonsLover
74ac7e5e6f Adding French Canadian language 2015-03-11 17:08:25 -04:00
TheVikingWarrior
79f60fb425 Create it_IT.lang 2015-03-11 17:09:30 +01:00
CannibalVox
ed91e3161f Merge branch 'master' of github.com:CannibalVox/DimDoors 2015-03-11 09:29:25 -05:00
CannibalVox
4bb42971c8 A bunch of blocks weren't properly rift-immune because they weren't
initted yet
2015-03-11 09:28:59 -05:00
Mrkwtkr
a4c1d3aa70 Create zh_CN.lang
:P
2015-03-11 21:29:01 +08:00
CannibalVox
6907350f00 Personal links set a destination for annoying cruft reasons. Easier to
ignore it when someone is generating a personal dim than fix that.
2015-03-11 08:22:24 -05:00
CannibalVox
ec180f46f0 Merge branch 'master' of github.com:CannibalVox/DimDoors 2015-03-11 07:46:10 -05:00
CannibalVox
d2c8877c26 Give personal dims the right provider on client-side 2015-03-11 07:45:51 -05:00
Cannibal Vox
66ac4d8512 Merge pull request #1 from Adaptivity/patch-1
Create ru_RU.lang
2015-03-11 01:42:16 -05:00
Vexatos
45b89abe90 Create de_DE.lang 2015-03-11 07:10:32 +01:00
Anton
8acbada3ba Create ru_RU.lang 2015-03-11 07:55:59 +03:00
CannibalVox
1464638fff Fixed SSP- stop the network code from doubling up adds/deletes 2015-03-10 16:59:34 -05:00
CannibalVox
af0d1450a4 SMP crash on rift creation 2015-03-10 13:57:11 -05:00
CannibalVox
0c70b0760b This event appeared to be unnecessary and was jacking up SSP 2015-03-10 13:44:00 -05:00
CannibalVox
8d282cb021 Decided to actually plug in the network. idea copyright olloth 2015 2015-03-10 13:13:26 -05:00
CannibalVox
43e67bdbd3 Don't crash server on startup trying to use sounds 2015-03-10 10:48:36 -05:00
CannibalVox
585b0685d0 Fixed a lot of WAILA weirdness 2015-03-10 10:36:39 -05:00
CannibalVox
e5af4f5964 Fixed some keyhole texture case sensitivity thing- also let's not use the
build output resources folder as a dumping ground for textures, thanks.
2015-03-10 09:39:14 -05:00
CannibalVox
8073ee6a32 Localize ALL THE THINGS! 2015-03-10 08:57:08 -05:00
CannibalVox
6aeed2c0e5 Fix version 2015-03-10 05:50:49 -05:00
CannibalVox
f9addaf115 Update these field names 2015-03-10 05:17:09 -05:00
CannibalVox
e15bfbd2d1 Some tweaks to the monolith- make it look great. 2015-03-10 04:28:31 -05:00
CannibalVox
7c11003686 Key monolith behavior in to config file 2015-03-10 04:20:29 -05:00
CannibalVox
c72a03b558 Fixed limbo music 2015-03-10 04:03:45 -05:00
CannibalVox
07a986d39d Remove the procedural stuff more completely 2015-03-10 03:50:50 -05:00
CannibalVox
ff890fe7b6 If obelisks are just going to watch in limbo, make them act like that 2015-03-10 03:49:59 -05:00
CannibalVox
d4ff48435c Remove poly2tri because it's for stuff that never got finished 2015-03-10 03:29:42 -05:00
CannibalVox
c46e08c76e Make parts other than the monolith eye visible 2015-03-10 03:24:02 -05:00
CannibalVox
8368c55478 Obelisk eyes don't draw through walls now 2015-03-10 02:56:42 -05:00
CannibalVox
2ca661cc45 Fixed decay trying to decay limbo blocks then crashing 2015-03-10 02:56:18 -05:00
CannibalVox
42a04ff156 Fix sounds for 1.7 2015-03-10 02:55:15 -05:00
CannibalVox
198d1ac56f Remove the procedural rift rendering 2015-03-09 16:10:02 -05:00
CannibalVox
8c30d67ba2 Where'd that ++ come from? That shouldn't be there. 2015-03-09 16:09:35 -05:00
CannibalVox
394495baa6 Migrated the dungeons to 1.7 2015-03-09 16:07:48 -05:00
CannibalVox
735b06ded2 Forgot to register block rotations 2015-03-09 10:36:25 -05:00
CannibalVox
e47e9597ac Fix rotation issue for dimdoors 2015-03-09 09:35:06 -05:00
CannibalVox
76d2f20f5d Fix rifts not rendering, fix rifts not closing, door blocks not synched 2015-03-09 03:36:56 -05:00
CannibalVox
4d26a2ec31 Initial rendering fix for rifts 2015-03-08 17:46:42 -05:00
CannibalVox
22654722b6 Turns out items have to be registered now & other spot fixes 2015-03-07 02:20:06 -06:00
CannibalVox
5ef42b6bd3 Apparently biome 149 is taken by minecraft 2015-03-07 01:49:46 -06:00
CannibalVox
f78fadd8a8 I think this is how you use forgemessages(???) 2015-03-07 01:45:12 -06:00
CannibalVox
db92637ea3 Finally got the AT working 2015-03-07 01:34:17 -06:00
CannibalVox
89f256af09 Need to actally update this build script. 2015-03-06 21:05:43 -06:00
CannibalVox
6457c562a6 Fix schematics & add TE sync 2015-03-06 20:57:05 -06:00
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