Commit Graph
100 Commits
Author SHA1 Message Date
SenseiKiwi ff24ce4de6 Minor Changes
Fixed indentation and removed pointless annotations.
2014-01-05 01:06:33 -04:00
SenseiKiwi 7ebc4e6ead Resolved Merge Conflicts
Resolved merge conflicts between recent bug fixes in DungeonSchematic
and some minor additions to the code from another branch.
2014-01-04 03:36:37 -04:00
SenseiKiwi 7aeaa46a47 Merge branch 'mazes' 2014-01-04 03:22:26 -04:00
SenseiKiwi 714120f96a Merge remote-tracking branch 'upstream/master' 2014-01-04 03:21:18 -04:00
SenseiKiwi 4ebae55b17 Progress on Fixing Dungeons
Failed at fixing two dungeons for MC 1.6. I'll have to work around the
changes to block updates. >_o
2014-01-04 03:07:32 -04:00
SenseiKiwi c0dec4caa3 Fixed Small Branch Room
Fixed a simple dungeon that had a problem with an extra sandstone block.
2014-01-03 18:46:41 -04:00
SenseiKiwi d0aadd0eea Merge remote-tracking branch 'upstream/master' 2014-01-03 14:39:58 -04:00
SenseiKiwi e3f22ee4df Fixed Dungeon Weights
Made super rare dungeons appear more frequently.
2014-01-03 14:39:36 -04:00
SenseiKiwi e5da1754c5 Added Dungeon: The Nexus
Added a new dungeon.
2014-01-02 21:24:40 -04:00
SenseiKiwi 2f8292faab More Progress on Mazes
More progress on mazes. Started implementing the placement of
dimensional doors in mazes.
2014-01-01 01:39:22 -04:00
SenseiKiwi 63879b1851 Minor Change
Removed empty line
2013-12-31 15:13:29 -04:00
SenseiKiwi f779915279 Minor Change
Deleted a line with a useless annotation.
2013-12-31 02:59:44 -04:00
SenseiKiwi 5e60960661 Completed Doorway Placement
All doorways are placed sensibly now, including vertical passages
between different floors.
2013-12-30 19:59:17 -04:00
SenseiKiwi 3e33b94c98 Minor Change
Changed a comment
2013-12-30 03:29:05 -04:00
SenseiKiwi 70ae2fd407 Improved Doorway Placement
Changed MazeDesigner to prune out some unnecessary doorways at random by
removing edges from the room graph. Previous mazes allowed all side
paths to exist, which resulted in a kind of circular layout. Although
that was disorienting to people at first, if you realized it was a
circle, it became simple to navigate through the maze. This update makes
branching paths more common.
2013-12-30 03:21:42 -04:00
SenseiKiwi 3574b0468b Improved Doorway Placement
Doorways are now placed in different ways, depending on the dimensions
of the walls that they're on. This includes that large walls get two
doorways connecting to the same room.
2013-12-30 02:44:18 -04:00
SenseiKiwi 7afcfedbde Fixed Bug in MazeDesigner
Fixed a bug in MazeDesigner that would connect some rooms with duplicate
doorways. The problem was in how intersections were being tracked to
improve the efficiency of adjacency checks.
2013-12-30 02:09:31 -04:00
SenseiKiwi 27b21f6674 Fixed Bug in LinkedList
Fixed a bug in LinkedList - the size of the list never increased when
elements were added.
2013-12-30 01:22:31 -04:00
SenseiKiwi d2da74ea76 Minor Change
Adjusted the size of mazes slightly to reign in huge rooms.  If the
problem persists, we can consider other options such as dropping dungeon
sizes a little more, increasing the number of splits, or biasing the
split plane selection toward the middle of the range.
2013-12-30 00:25:08 -04:00
SenseiKiwi 3eaf6cdfb8 Organized Doorway Code
Separated the code that carves up doorways in mazes. Mostly a minor
change in preparation for giving doors smarter placements.
2013-12-29 22:35:13 -04:00
SenseiKiwi cee4005513 Reduced Floor Doorways
Added code to minimize the number of doorways that involve dropping
through the floor. Added a DisjointSet class as part of the
implementation. I also split the maze construction process into two
classes (MazeDesigner and MazeBuilder) to make it clearer.
2013-12-29 21:31:10 -04:00
SenseiKiwi 22ab4e3639 Improved Second Step
Deleted old function for removing random rooms. Fixed the occasional NPE
described in my previous commit - deferred the removal of nodes from the
graph until after iterating over their collection. Added conditions for
removing maze sections that are too small to be useful.
2013-12-29 03:11:02 -04:00
SenseiKiwi 31f0c1ca0c Completed Second Step of Maze Generation
Completed the second step of maze generation. In this step, a graph is
built that describes which rooms can be connected to each other by
doorways. A maze is created by removing nodes (rooms) from the graph.
The algorithm is incomplete, but it already produces interesting mazes
comparable to DD's hand-made mazes.

A few details for the future:
1. Doorways are currently carved into walls at default locations. This
is just for testing and placement should be improved later. Some
doorways should be removed and redundant doorways should be possible.
2. The size of a section should be assessed and the section should be
discarded if it has too few rooms.
3. An NPE occurs every so often when a maze is generated. It's possible
that it happens because of removing a node from the graph that is
coincidentally the current node for LinkedList's iterator. The solution
would be to add nodes to a list and defer removals until after the
iteration is done.
2013-12-28 22:49:11 -04:00
SenseiKiwi 81bac5d1c2 Progress on Second Step
Made some progress on the second step of our maze generation algorithm:
building an adjacency graph for setting up doorways later. Renamed the
SpatialNode class to PartitionNode to better represent its role.
2013-12-27 21:58:17 -04:00
SenseiKiwi 28cb2e5e74 Merge remote-tracking branch 'upstream/1.6.2-code' into mazes 2013-12-27 03:12:26 -04:00
SenseiKiwi a9f0bc5069 More Maze Generation
Made some changes to maze generation to prune out random rooms from the
structure. This doesn't look as nice as I'd hoped, so I'm going to try
some other approaches.
2013-12-27 03:11:59 -04:00
SenseiKiwi 82da53b992 Minor Change
Added blank lines to Point3D to space out functions. <_<
2013-12-26 15:29:42 -04:00
SenseiKiwi 820e72f17a Added First Step of Maze Generation
Added classes for generating maze dungeons. At the moment, the dungeons
are generated in place of our pocket dimensions to make testing easy.
We'll need to restore pocket generation later and integrate the mazes
into the dungeon packs later. Currently, the structures are very
incomplete (they don't even have doorways), but this is only the first
step.
2013-12-26 15:29:20 -04:00
SenseiKiwi 72196c6afd Fixed Saving Log Spam
Removed the code from PocketManager that would output messages about
saving dim data every so often since it was causing log spam.
2013-12-24 00:58:23 -04:00
SenseiKiwi 65ed1de6ee Merge remote-tracking branch 'upstream/1.6.2-code' into 1.6-fixes 2013-12-24 00:36:32 -04:00
SenseiKiwi 6d2c645ce9 Minor Changes
No changes to functionality
2013-12-24 00:36:02 -04:00
SenseiKiwi b929724781 Merge remote-tracking branch 'upstream/1.6.2-code' into 1.6-fixes 2013-12-22 19:06:12 -04:00
SenseiKiwi b6669183bc More Dungeons
More dungeons for the Ruins pack. You'll never see it coming.
2013-12-22 19:05:04 -04:00
SenseiKiwi f40f42298f Merge remote-tracking branch 'upstream/1.6.2-code' into 1.6-fixes 2013-12-22 18:39:46 -04:00
SenseiKiwi cfb370ad1f Minor Change
Removed a pointless SupressWarning annotation
2013-12-22 18:30:41 -04:00
SenseiKiwi a6048c6c29 Overhauled Loot
Changed our loot generation. Instead of relying on Minecraft's built-in
loot categories, we now have our own static loot category. There are two
types of chests now. Regular chests contain randomly-picked coal, iron,
gold, diamonds, emeralds, quartz, enchanted books, and golden apples
(very rare). We also have a function for filling out "grave chests",
which occur in 1 out of every 7 chests. Those contain rotten flesh,
bones, and some armor pieces and equipment that are assigned random
damage values and occasionally also get level 1 enchantments. Small
changes were made to various files to incorporate this update.
2013-12-22 18:30:16 -04:00
SenseiKiwi 75e103aa65 Merge remote-tracking branch 'upstream/1.6.2-code' 2013-12-20 17:28:50 -04:00
SenseiKiwi 13458029b4 Fixed ClassCastException in DungeonPack
Fixed a bug in DungeonPack that would trigger a rare ClassCastException
during dungeon selection. We were comparing instances of DungeonType
against WeightedContainer<DungeonType>. This wouldn't break dungeon
generation because DD falls back on selecting a random dungeon if
rule-based selection fails. It would allow duplicate dungeons to appear
in the same chain, though.
2013-12-20 01:10:55 -04:00
SenseiKiwi b5973f58eb Deletes IItemDimDoor
Doesn't seem like we need it... and it's in the wrong package. Respect
the packages! õ_Õ
2013-09-11 22:18:24 -04:00
SenseiKiwi a92cd2fba7 Merge remote-tracking branch 'upstream/DevBranch' into rewrite 2013-09-11 22:15:05 -04:00
SenseiKiwi c2fa4964f8 Progress on New Save Format
Integrated the base code for our new save format. It still needs more
work but at least some substance is there. Ignore the file not found
messages that come up when trying to save the world's data - since we're
not actually writing files, an exception occurs when we some later code
tries to move non-existent save files.

Also moved the FileFilter functionality out of DungeonHelper and into
its own class, FileFilters, since it's finally needed more broadly.
2013-09-11 22:13:42 -04:00
SenseiKiwi 1d3038288b Minor Fix in BlockDimWall
Fixed an issue that skyboy had pointed out long ago about us using
ItemBlock.itemID as a block ID instead of ItemBlock.getBlockID(). That's
potentially hazardous because that function was introduced specifically
so mods could override it and decouple item IDs from block IDs.
2013-09-11 02:30:31 -04:00
SenseiKiwi 6f905050f2 Minor Change
Removed unused import
2013-09-11 01:21:12 -04:00
SenseiKiwi b73e79e5c2 Merge remote-tracking branch 'upstream/DevBranch' into rewrite 2013-09-10 15:51:00 -04:00
SenseiKiwi 687e66e23f Merge remote-tracking branch 'upstream/DevBranch' into rewrite 2013-09-10 15:49:06 -04:00
SenseiKiwi b9edf3326d Merge remote-tracking branch 'upstream/DevBranch' into rewrite 2013-09-09 20:36:48 -04:00
SenseiKiwi 51e396aa6b Merge remote-tracking branch 'upstream/DevBranch' into rewrite 2013-09-09 03:58:34 -04:00
SenseiKiwi 498e087d0a Merge remote-tracking branch 'upstream/DevBranch' into rewrite 2013-09-09 02:31:42 -04:00
SenseiKiwi 027b329af8 Completed Unsafe Exit Teleportation
Completed the code in yCoordHelper for choosing a point to drop the
player when using a Transdimensional Trapdoor. Made changes to
DDTeleporter so that the player can be dropped at the specific point we
want. This needs further testing, though, since I'm not completely sure
it's working right.
2013-09-09 02:31:11 -04:00
SenseiKiwi 7dbc6896b1 Minor Fixes
Cleaned up obsolete code in PocketProvider and fixed the assignment of
hasNoSky so that it actually applies. Also overloaded getActualHeight()
so that we return 256 despite hasNoSky = true - the default MC behavior
is that we would return 128 in that case. Also undid a previous change
to EventHookContainer - players that die in pockets will respawn in
Limbo, again.
2013-09-09 00:42:03 -04:00
SenseiKiwi 9fec41f906 Minor Change
Renamed IDimDoor.placeDimDoor() to placeLink(), since that's what it's
actually being used for in our doors. Saying it places the door itself
is confusing.
2013-09-08 21:05:06 -04:00
SenseiKiwi 156c61a772 Improved DDTeleporter
Made a minor change to DDTeleporter - added a flag so that we can
specify that entities must be teleported to the destination without
trying to shift them around based on destination orientation. This is
important for the trapdoor, since otherwise entities might get shoved
into walls. Also cleaned up some code in DDTeleporter. It's much more
readable now. These changes are in preparation for completing Trans
Trapdoor destination selection.
2013-09-08 21:01:38 -04:00
SenseiKiwi fc6dd63573 Minor Change
Renamed TransTrapdoor.isTrapdoorOnBlock() to
TransTrapdoor.isTrapdoorSetLow() so it would be easier to understand
what it indicates.
2013-09-08 16:48:16 -04:00
SenseiKiwi 4501e9373f Finished Merging Changes to Trapdoor
Merged together the different changes we had made to Transdimensional
Trapdoors. Cleaned up the rendering and tile entity code a bit, it
should be a little more understandable now.
2013-09-08 16:45:28 -04:00
SenseiKiwi de5ef3b85f Renamed TileEntityDimHatch
Renamed TileEntityDimHatch to TileEntityTransTrapdoor. That matches the
name of the item we use in other parts of DD's code.
2013-09-08 15:31:17 -04:00
SenseiKiwi 37b0510676 Partially Improved Unsafe Exits
Partially completed the code for unsafe exits (used for trapdoors) so
that they drop players into air pockets. It's not complete yet, but I
want to merge in other changes before continuing.
2013-09-08 15:23:14 -04:00
SenseiKiwi 72213de437 Minor Change
Removed unused import in TransTrapdoor
2013-09-08 15:22:19 -04:00
SenseiKiwi 672c19b032 Improved Dim Door Collision Detection
Improved our code for checking whether an entity in contact with a door
should be teleported. Now the check works better, works for Minecarts,
and is more readable. It also ignores particle effect entities.
2013-09-08 15:22:03 -04:00
SenseiKiwi 44b39be7b7 Modified RiftFX Classes
Modifed the RiftFX classes so that their particles have noClip = true.
This avoids rifts spamming the collision events of other blocks,
including dimensional doors, and it should improve the performance of DD
a little.
2013-09-08 15:18:48 -04:00
SenseiKiwi f83841a142 Fixed Transdimensional Trapdoor
Got the Transdimensional Trapdoor working again. Renamed the file to
TransTrapdoor and trimmed off unnecessary code - BlockTrapDoor
implements a lot of the necessary logic. Implemented IDimDoor for
clarity.
2013-09-07 23:27:07 -04:00
SenseiKiwi 7280b54c47 Updated BlockRotator
Updated BlockRotator to check if a block is an instance of DoorBlock
instead of checking for BaseDimDoor - since we changed BaseDimDoor to
derive from DoorBlock, the latter check is no longer needed.
2013-09-07 22:16:47 -04:00
SenseiKiwi fb59a3dacb Merge remote-tracking branch 'upstream/DevBranch' into rewrite 2013-09-07 22:05:11 -04:00
SenseiKiwi b5d4df8f6a Updated LimboDecay
Updated LimboDecay to not affect certain blocks from DD. This matters in
case we decide to start placing gateways in Limbo again.
2013-09-07 21:35:15 -04:00
SenseiKiwi 703ec03d29 Stopped Cluster/Gateway Generation in The End
Added a condition preventing rift clusters and gateways from generating
in The End. It's not really useful to do that right now and could
actually cause some annoying side-effects.
2013-09-07 21:25:38 -04:00
SenseiKiwi a0f9dfff4a Merge remote-tracking branch 'upstream/master' into rewrite 2013-09-07 20:23:53 -04:00
SenseiKiwi 1d1d0a767c Fixed Doors and Minor Dungeon Change
Fixed the regression bug that caused some of our doors to get placed in
the wrong direction. Changing doors to inherit from BaseDimDoor caused
BlockRotator to assume they weren't dimensional doors because it used
"instanceof DimensionalDoor" to check. Thanks for figuring it out,
Steven! ^_^

Also made a minor change to dungeon generation. We now check the game
rule doMobSpawning and don't spawn Monoliths from DungeonSchematic if
the value is false. This is useful for testing without Monoliths around.
We still do work to remove the portal frame blocks even if the mobs
aren't spawned.
2013-09-07 20:14:14 -04:00
SenseiKiwi 921b6e88af Removed Rift Creation and Unused Settings
Removed the rift creation code from the Rift Blade and removed unused
settings from DDProperties. Specifically, the rift creation flag for the
Rift Blade, since that's getting removed, and the RiftSpreadModified,
which hasn't been referenced for a while.

I also cleaned up the code in Rift Blade slightly. Its special functions
worked during testing but blocking did not. I'm not sure why at the
moment.
2013-09-07 19:44:33 -04:00
SenseiKiwi fd4b9b5086 Fixed Regression in DungeonSchematic
As part of the rewrite, I'd removed code related to replacing the
sandstone markers under dungeon exit doors, so the markers weren't being
replaced. Now that's working again.
2013-09-07 13:14:43 -04:00
SenseiKiwi 07a5e2a64d Progress on Rewrite
Completed exit door code. Also fixed noise calculation for dungeon door
destinations - we were attempting to use pack depth in the calculation
before it had been initialized.
2013-09-07 12:27:28 -04:00
SenseiKiwi 06c90572f1 Merge remote-tracking branch 'upstream/DevBranch' into rewrite 2013-09-07 05:12:30 -04:00
SenseiKiwi 25d3931210 Improved DDLoot
Fixed an issue with DDLoot where we couldn't distinguish between items
with the same ID but different subtypes while merging loot categories.
For instance, we could not include two different colors of dye in our
loot because their item IDs matched. We can now tell them apart properly
and include both items.
2013-09-07 05:12:07 -04:00
SenseiKiwi bac3caa5cc Minor Changes
Changed EventHookContainer.LivingDeathEvent() to use the player's max
health instead of a fixed health value. No magic numbers! Also cleaned
up the code a little.
2013-09-06 22:14:27 -04:00
SenseiKiwi a0454351d5 Cleaned Up Code
Deleted PlayerRespawnTracker and removed all references to it - we
weren't going to use it anymore anyway. Renamed IDDoorLogic to IDimDoor
- abbreviating the "Dim" as D next to the standard I for Interface is
confusing. Renamed DDoorBase to BaseDimDoor and made it into an abstract
class - that's effectively what it was supposed to be. We should be
declaring methods as abstract rather than using empty ones. I renamed
the class because the convention for naming abstract classes is to start
the name with Base. Cleaned up code in other files.
2013-09-06 20:57:00 -04:00
SenseiKiwi f2ff5f79cc Merge remote-tracking branch 'upstream/DevBranch' into rewrite 2013-09-06 18:41:20 -04:00
SenseiKiwi c57b001fe2 Partially Fixed Exit Doors
Added code so that exit doors will search for a destination and place a
platform for the player on the other side. However, the search function
only searches upward, not downward. I'd like to discuss some details
about this before completing the implementation:
1. How should the search work?
2. What should be the likelihood of a dungeon exit leading to a
different root dimension than the dungeon's actual root?

I've tested the exits and they're working well.
2013-09-06 18:40:43 -04:00
SenseiKiwi b795c411be Added Support for Missing Link Types
Added functions for generating destinations for some link types that we
hadn't included yet - player-made exits, trapdoors, and dungeon exits.
The player-made and dungeon exits still don't generate anything, but
there's a single function where we can write up the code:
DDTeleporter.generateSafeExit(). Also added some simple code for listing
root dimensions in PocketManager. None of this has been tested yet!
2013-09-05 22:43:11 -04:00
SenseiKiwi 03660699cf Minor Changes
Cleaned up our code related to initializing dimensions. Removed
redundant instances of that code and instead created a function:
PocketManager.loadDimension() - to centralize all uses of that logic.
Added LinkTypes.REVERSE to represent links leading back out of pockets
through their entrances. That distinction might prove critical in the
future when we support resetting dungeons.
2013-09-05 21:03:11 -04:00
SenseiKiwi 3ce380ad5e Fixed Unstable Doors
Added code so that the links for Unstable Doors are handled properly by
DDTeleporter. Hurray! Also cleaned up some unused imports in the
BiomeGen classes and removed the RANDOM_DUNGEON link type - it was meant
for the dd-rift command but there is no need for it anymore.
2013-09-05 18:13:05 -04:00
SenseiKiwi 1dfa5817bf Moved DDTeleporter
Moved DDTeleporter to the mod_pocketDim.core package. It seemed
reasonable given that DDTeleporter is closely tied to how Dimensional
Doors works. It controls the most critical feature for all items -
teleportation - and handles routing requests to initialize link
destinations.
2013-09-05 16:31:32 -04:00
SenseiKiwi 64cc95f92b Deleted DimUpdatePacket
Deleted DimUpdatePacket since it's not used for anything and the file is
essentially empty.
2013-09-05 16:24:01 -04:00
SenseiKiwi a82c7ce4c2 Minor Changes
Made minor changes to ItemRiftBlade to clarify our code. Had to update
mod_pocketDim to use ItemRiftBlade's new constructor after changing it
slightly.
2013-09-05 16:19:05 -04:00
SenseiKiwi 1138f6733e Cleaned Up Code
Changed calls to canPlayerEdit() to pass hit.sideHit data with the
request. Also renamed several variables to make the code clearer.
Removed a custom implementation of the ray tracing call in BaseItemDoor
- we can use the built-in call from Minecraft there.
2013-09-05 11:36:59 -04:00
SenseiKiwi 22b7ed147a Fixed Bug in PocketManager
Fixed a bug in PocketManager - I had forgotten to raise the dimension
creation event when needed.
2013-09-05 11:13:14 -04:00
SenseiKiwi 6a816bbca7 Minor Change
Removed a debug message from the Rift Remover.
2013-09-05 11:04:48 -04:00
SenseiKiwi b4cb8f8610 Fixed Rift Remover
Fixed the Rift Remover item.
2013-09-05 02:12:59 -04:00
SenseiKiwi e8e0cdf8ad Minor Changes
Made minor changes to LinkTypes for clarity. Removed removeRift() from
PocketManager since it wasn't used by anything and because it shouldn't
contain rift removal code anyway.
2013-09-05 00:15:48 -04:00
SenseiKiwi fa33fa95c8 Fixed Rift Signatures
Fixed Rift Signatures and Stabilized Rift Signatures. A few unexpected
MC-related issues were preventing them from working properly. Also fixed
a typo that caused us to place rift blocks at the wrong coordinates with
respect to the rift sig endpoints. Autocorrected the indentation on both
source files for aesthetics.
2013-09-04 19:26:59 -04:00
SenseiKiwi 8d5a3ac72e Fixed More Bugs
Fixed how the door in a pocket is placed so that it doesn't break and so
that it's placed facing into the pocket. Also added code to make that
door link back to the parent dimension - forgot that before!
2013-09-04 16:06:54 -04:00
SenseiKiwi 70eb276086 Fixed More Bugs
Fixed a similar bug in DDTeleporter and PocketBuilder that caused things
to be oriented wrong. Specifically, teleporting would orient the player
wrong relative to the destination door and pockets would be oriented
wrong relative to their parents. Teleporting works properly now.
2013-09-04 14:29:53 -04:00
SenseiKiwi b3847a62b7 Fixed More Bugs
1. Fixed mistakes in PocketBuilder that would cause dungeons to be
initialized as non-dungeon pockets. This restored Monolith spawning
around dungeons.
2. Fixed a bug in DungeonSchematic - returning links through entry doors
should work now.
3. Made minor changes to DungeonSchematic for clarity
2013-09-04 13:48:54 -04:00
SenseiKiwi b9fcfea877 Fixed Various Bugs
Fixed various minor bugs affecting transient doors and teleportation.
2013-09-04 00:34:11 -04:00
SenseiKiwi 549ee54852 Fixed More Bugs
Fixed the issue with integrated servers causing circular updates between
the combined server and client. We now check on the client side whether
the connection we're receiving data from is a memory connection (which
is presumably only used by integrated servers). If so, the client
ignores any incoming packets. We don't just disable update events
altogether because LAN games will require updating remote clients.

Also fixed a bug in PocketManager.unload() - we weren't setting isLoaded
to false after unloading everything and unregisterPockets() had to be
called before setting dimensionData to null.
2013-09-03 21:41:54 -04:00
SenseiKiwi 1a50aa2290 Minor Changes
Minor changes: removed unused imports and random blocks of whitespace
2013-09-03 19:31:19 -04:00
SenseiKiwi 8bfe9dc22e Fixed More Bugs
Fixed more bugs. Now it's possible to generate a world without crashing.
Unfortunately, it's clear that there is a packet-sending loop going on.
I'll have to add a check to prevent integrated servers from spamming
themselves.
2013-09-03 18:28:42 -04:00
SenseiKiwi 77bc0e833f Fixed Bugs
Fixed bugs that would cause Minecraft to crash on startup. At least I
can get to the main menu now.
2013-09-03 17:47:02 -04:00
SenseiKiwi 4cd7d3c0ae Completed Packet Handling Code
Finished implementing all the packet handling code. It could be improved
in the future to compress the initial packet sent to clients. With this,
the code is complete enough to run! Commands have not been fixed yet but
that will come in the future.
2013-09-03 17:25:58 -04:00
SenseiKiwi 3568d223ff Overhauled Server-Side Packet Handling
Threw out the complicated architecture that I'd made for synchronizing
server and client data perfectly. Instead, we now send just enough data
to the client and the resulting code is simpler. Some of the client-side
code is also done so all packet handling should be finished soon.
2013-09-03 15:33:09 -04:00
SenseiKiwi 307d2258d1 Progress on Rewriting Packet Handling
Continued building a system for transferring the complete internal
states of our dimensions from the server to the client. However, Steven
suggested that clients only need minimal data to operate properly, as
opposed to the server. My motivation for this more complicated system
was the concern that minimal information wouldn't be enough. I'm going
to commit my progress, then tear it down and write a much simpler
version.
2013-09-02 16:51:20 -04:00
SenseiKiwi 56ecb0cd9e Reorganized DimLink Code
Moved the DimLink code out of NewDimData in order to reduce clutter
inside that class and made it a separate class, except for functions
that should only be available for NewDimData. Deleted IDimLink and
changed all references to it to use DimLink instead. DimLink is now an
abstract class, which achieves the same encapsulation and protection we
had before by having DimLink implement IDimLink from within NewDimData.
NewDimData has a new class inside, InnerDimLink, which provides it
access to special functions that would be dangerous to expose. This is
the same mechanism used to protect NewDimData's dangerous functions.
These changes are in preparation for adding more code for packet
handling.
2013-09-02 11:47:12 -04:00
SenseiKiwi 0bd7ef9593 Deleted PacketHandler
Forgot to commit this change before.
2013-09-01 22:02:05 -04:00