Commit Graph

616 Commits

Author SHA1 Message Date
Collin Smith
3860283e61 Committing MenuWrapper component and NpcInteractionEvent 2019-12-21 22:42:52 -08:00
Collin Smith
fd606b4d18 Decoupled client specific code from AI
Changed ClientEntityFactory reference type to EntityFactory
Removed references to MenuManager and DialogManager in favor of an event-based approach
ClientEntityFactory is now in charge of calling special Npc#createMenu method
2019-12-21 22:12:31 -08:00
Collin Smith
0d88f138d9 Disabled entity creation when socket is non-null 2019-12-21 01:22:11 -08:00
Collin Smith
55fdf47312 Decoupled network sync code from NetworkedGameScreen into ClientNetworkReceiver 2019-12-21 00:43:26 -08:00
Collin Smith
866cdc0504 Added interactor and pathfind support to D2GS
Added interactor and pathfind support to D2GS
Removed some special case code from pathfinder -- was forcing reliance on client code in what should be server-only code
2019-12-20 13:59:43 -08:00
Collin Smith
3cd621c4bf Decoupled entity creation from map generation and created MapManager to manage map entity creation instead
This change should help with adding support for server authoritative entity creation
2019-12-20 02:50:37 -08:00
Collin Smith
b537195d7c Created ItemManager to play drop and flippy sounds for dropped item entities 2019-12-19 02:25:01 -08:00
Collin Smith
7c18932b65 Made ClientEntityFactory a subclass of ServerEntityFactory with client-specific components appended 2019-12-19 02:13:22 -08:00
Collin Smith
5cdd7cce1a Reverted previous change in favor of more elegant solution
Added setter method for CofReference
Defined default modes for Class.Type types
Creating CofReference will require setting default mode mentioned above
CofManager will now call initial events when CofReference component is added
ObjectInitializer will automatically initialize when Object component is added
2019-12-18 02:53:07 -08:00
Collin Smith
a44ef4c799 Added setter method for MapWrapper component 2019-12-18 02:17:32 -08:00
Collin Smith
3b9d56252f Simplified expression for PathWrapper creation 2019-12-18 01:45:26 -08:00
Collin Smith
30a0c6a31f Added setter method for DS1ObjectWrapper 2019-12-18 01:45:04 -08:00
Collin Smith
e015192787 Changed method signatures to allow subclassing EntityFactory while maintaining super implementation details 2019-12-18 01:41:39 -08:00
Collin Smith
9e9335be5c Removed MapWrapper reference (folded into createEntity) 2019-12-18 01:15:59 -08:00
Collin Smith
afd1f2839b Synchronized createPlayer within Client and ServerEntityFactory 2019-12-18 01:12:27 -08:00
Collin Smith
026a43fb06 Added comment referencing #73 2019-12-17 00:12:49 -08:00
Collin Smith
ae5371bcac Improved readability 2019-12-16 05:54:52 -08:00
Collin Smith
3b5fc424d9 Added filename reference and adjusted debugging slightly for versions 9-13 issue 2019-12-16 05:53:38 -08:00
Collin Smith
03dfde4131 Disabled debug logging for DS1 and DT1 classes 2019-12-16 05:37:23 -08:00
Collin Smith
c677ca415d Added support to set DT1 class to headless loading mode 2019-12-16 05:36:13 -08:00
Collin Smith
4ea338312c Refactored dependency on ClientEntityFactory to EntityFactory 2019-12-16 05:04:53 -08:00
Collin Smith
8c637e9ae6 Fixed an error message and added default state for created entities 2019-12-16 01:43:42 -08:00
Collin Smith
1fe7ddd3ae Changed from preset 47 to 48 (47 appears to be deprecated with some errors) 2019-12-15 03:23:22 -08:00
Collin Smith
0dac16d773 Changed EntityFactory object methods from DS1 to Map.Preset
Changed EntityFactory object methods from DS1 to Map.Preset
Exposed Map.Preset to public access to assist with debugging issues
Reduced visibility of updatePopPads to package-private access
2019-12-15 03:20:51 -08:00
Collin Smith
3669ffc57b Added support for creating entities for preexisting characters on new client instances 2019-12-15 02:06:35 -08:00
Collin Smith
c14a8fcb18 Committing flatbuffer tables for angle, position and velocity 2019-12-15 01:26:33 -08:00
Collin Smith
8c38af053a Added network synchronization for position, velocity and angle 2019-12-15 01:25:26 -08:00
Collin Smith
15687b71c6 Improved D2GS client implementation
D2GS clients are now indexed using a fixed-size array
Connecting clients will now use the first available slot
Disconnecting clients will now have their corresponding entity deleted
Shutting down server will now wait for client threads to end
Removed separate iteration method for broadcast packets -- I don't think this distinction is necessary
Refactored AtomicBoolean with volatile boolean
Debug logging has been significantly been improved to indicate clients / packet types / remote addresses
2019-12-14 03:55:23 -08:00
Collin Smith
34eebb41aa Added disconnect packet and support for entity state synchronization
Disconnecting clients will now have a corresponding disconnect packet
Changing a players items will result in the change also appearing on other players' instances
2019-12-13 15:29:17 -08:00
Collin Smith
d296c6c647 Added support for disconnecting clients and broadcasting entity deletion 2019-12-12 15:22:31 -08:00
Collin Smith
5ac92a1583 Upgraded to Flatbuffers 1.11.0 2019-12-12 14:17:03 -08:00
Collin Smith
e4df005987 Rewrote engine and replaced Ashley with Artemis
Rewrote engine and replaced Ashley with Artemis
Added basic networking support for D2GS (handshake and sending initial player state to clients)
2019-12-11 02:07:55 -08:00
Collin Smith
d6c76d2add Fixed an error in D2 file type 2019-12-06 23:47:57 -08:00
Collin Smith
d3529540ca Committing local changes -- added D2 reference to Riiablo class 2019-12-05 04:06:43 -08:00
Collin Smith
1a7f6a95da Added support for clearing map graph when map is disposed
Disposing maps was leaving invalid pathfinding results -- this fixes that
2019-12-04 23:49:20 -08:00
Collin Smith
6fed567f38 Animation box will update when initially loading COF
Animation box will update when initially loading COF
Debug drawing animation will display origin
Created issue #71
2019-12-04 15:29:41 -08:00
Collin Smith
a4068ba975 Improved D2.Entry
Renamed b1 to speed and changed to unsigned byte as short
Renamed b2 to unk1 and changed to unsigned byte as short
Added assertion that zero is really 0
2019-12-04 02:06:57 -08:00
Collin Smith
99256902e9 Added D2 finder to search for cofs in d2 files or dump d2 file entries 2019-12-03 21:30:06 -08:00
Collin Smith
20dc30409d Removed additional debug logging 2019-12-03 20:51:54 -08:00
Collin Smith
d43dcf4116 Improved support for lower wall tiles by adding proper offset 2019-12-03 14:41:10 -08:00
Collin Smith
116865ca45 Moved Cell debug layer check up a line and improved its correctness 2019-12-03 14:13:43 -08:00
Collin Smith
08abc390af Rolled back change to apply only to layer 0 2019-12-03 14:06:27 -08:00
Collin Smith
0efa88c141 Added support for hiding debug objects
Added support for hiding debug objects
Map cell values now have main and sub indexes unset
Added additional parameter that seems to block walk better on non-map floor tiles
2019-12-03 13:50:43 -08:00
Collin Smith
de5a9e3bd9 Added an additional debugging mode for RenderSystem to assist with debugging DS1 cells 2019-12-03 04:25:44 -08:00
Collin Smith
8a30752432 Added improved support for changing acts 2019-12-03 01:47:31 -08:00
Collin Smith
73960ab993 Fixed issue where _65 was not activated as a pop pad 2019-12-03 01:46:47 -08:00
Collin Smith
07d56dd3a6 Fixed an issue where specials were not being assigned new maps when recycled
Fixed an issue where specials were not being assigned new maps when recycled
Fixed issues drawing poppad zone areas
Added getPixOffset function in isometric camera to retrieve camera offset
2019-12-03 01:38:34 -08:00
Collin Smith
f1ac35cb68 Disposing map will now clear DT1s 2019-12-03 00:44:58 -08:00
Collin Smith
1075779ece Fixed issue where freeing byte and tile arrays did not place them in proper pool resulting in invalid sized arrays being obtained 2019-12-03 00:39:41 -08:00
Collin Smith
d3aa3b4fc1 Fixed issues with zone pooling
Zone fields are now reset correctly
obtainByteArray and obtainTileArray now clear their data up to required size
2019-12-03 00:19:13 -08:00