Commit Graph

784 Commits

Author SHA1 Message Date
49d552d7b8 Added MapViewerTool which uses ECS engine and deprecates MapViewer 2019-11-23 18:01:06 -08:00
917c461e37 Extended PathfindDebugSystem to better support using independently from engine to test path finding
Added support for drawing ellipses with DebugUtils
2019-11-23 17:59:11 -08:00
407d41c7ba Implemented a JPS path finder (see #63) 2019-11-23 16:58:37 -08:00
ab9fe45d22 Replaced pixel coords x,y with cursor world coords x,y 2019-11-23 03:40:21 -08:00
b2d8b7f8b9 Fixed variable names 2019-11-23 02:04:30 -08:00
1d820b8bb2 Folded NodeRecord into Point2
Renamed IndexAStarPathFinder to AStarPathFinder because it isn't indexed anymore
2019-11-22 23:49:49 -08:00
42c440618f Minor change to enforce correct heuristic type is assigned to heuristic fields 2019-11-22 22:34:46 -08:00
99914c2c23 Rewrote path finding related classes to be more tailored to my needs (see #63) 2019-11-22 22:20:53 -08:00
673463da91 Refactored and moved some things around -- changed node category to byte 2019-11-22 16:17:04 -08:00
8545fc22fc Replaced node records array with one that is dynamically resized 2019-11-22 16:00:41 -08:00
a5898b568f Moved graph indexing abstraction to node interface
Moved graph indexing abstraction to node interface
Created clearanced node interface
Simplified IndexedAStarPathfinder
2019-11-22 03:26:15 -08:00
f7bdd339e4 Added support for item entities
Created ItemLoaderSystem to defer flippy file loading
Item entities are selectable only after their flippy file has been loaded since they have no bbox
Changed implementations from EntityListener to EntityAdapter
2019-11-21 04:11:16 -08:00
07ec6a9bc1 Relaxed family constraint that all entities should have a COF -- items do not 2019-11-21 03:39:31 -08:00
354c715261 Fix for shoving NPCs 2019-11-21 02:00:14 -08:00
2e264abb66 Fixed issue setting flags for multiple rows 2019-11-21 01:58:12 -08:00
d6f8de3b86 Added support for generating box2d bodies for monster and objects and generalized player entities
Added support for generating box2d bodies for monster and objects and generalized player entities
Added support for object entities to perform a bitwise or with the map tile flags so pathfinding will avoid them
2019-11-21 01:34:56 -08:00
266eca76ce Deferred disposing to Disposable interface 2019-11-20 05:00:54 -08:00
24b6a9d3ed Fixed Box2D world generation
Fixed Box2D world generation by subtracting tile offset
Added Box2D debug renderer
Disabled RenderSystem debug subtile flag
2019-11-20 00:16:10 -08:00
3bd3e5f64e Added debug logging for number of box2d bodies generated 2019-11-19 23:55:50 -08:00
4e5fbc03d6 Made Box2DPhysicsSystem disposable 2019-11-19 23:32:32 -08:00
35df3a6b96 Added support for retrieving vector2 view of MapGaphPath iterator
Added support for retrieving vector2 view of MapGaphPath iterator
Changed representation of PathfindComponent to Vector2 from MapGraph.Point2
Deleted old MapGraph racaster
2019-11-19 21:55:56 -08:00
4d1ecab3f5 Added support for sized path smoothing (see #63)
Added support for sized path smoothing
Removed extra data structures and put references directly into Point2
Added back direction-8 children successors
2019-11-19 20:46:55 -08:00
40d9b56c33 Increased position lerp tolerance to 0.1 yards -- should help prevent entities getting stuck at waypoints 2019-11-19 16:48:42 -08:00
b6bf8773a1 Implemented variation of A* that includes support for clearance (see #63)
Added SizeComponent and implemented auto sizing within engine entity creation
2019-11-19 02:07:42 -08:00
09c4a01b3e Implemented map to store existing paths to prevent object creation 2019-11-19 00:58:50 -08:00
2298d80cab Reduced static memory usage of MapGraph
Changed rounding method of Map#flags(float,float) to use Map#round(float) instead of casting down to int
Removed indexing and connection links from Point2
Point2 are now indexed using MapGraph#getOrCreate and mapped using an ObjectSet -- using int hash did not seem sufficient
Connections to a given Point2 are lazily generated using a static Array -- it did not make sense to cache this for every node
Cleaned up API and method references (all pathing methods now use MapGraph#searchNodePath as their base method)
Most of these changed are geared to hopefully use the underlying map collision flags array as the graph instead of building a new one
2019-11-18 16:36:24 -08:00
222fe7077a Added Box2D dependency
Created Box2DComponent to store Box2D body
Created Box2DPhysicsSystem to generate world objects and iterate physics
Created Box2DBodySystem to propagate VelocityComponent to Box2D bodies
2019-11-17 03:08:42 -08:00
5d077652ea Added getter method for RenderSystem isometric camera 2019-11-15 16:14:49 -08:00
bdfb83da30 Added pathfinding that includes collision detection with world -- PhysicsSystem still ignores collision 2019-11-15 16:04:08 -08:00
11fe2682f6 Fixed issue with displaying unloaded texture briefly before new one is loaded 2019-11-15 05:28:02 -08:00
22d7701647 Fixed changing cof components of an existing animation
Introduced CofComponent.setComponent(int,int) to auto set dirty flags for changed components
AnimationLoaderSystem will now unset load flag for null layers and remove transform and alpha update flags
CofLoaderSystem will now trigger a layer load when a nil component is encountered
2019-11-15 03:53:52 -08:00
d34964c4ba Increased Warp interaction range to 3 yards 2019-11-15 02:29:17 -08:00
3c1a8e4933 Added InteractableComponent 2019-11-15 01:24:51 -08:00
d0e323e320 Added AutoInteractSystem which will automatically hover and sort nearby entities for selection on mobile 2019-11-15 01:22:51 -08:00
00947ba87d Added ZoneEntrySystem to display zone entry texture when RenderSystem source entity changes zones 2019-11-12 20:13:44 -08:00
8c7a340582 Fixed issue where DARKEN wasn't multiplying alpha value 2019-11-12 20:08:10 -08:00
3317794cb5 Added PlayerSystem and Map.Zone tracking
Created ZoneAwareComponent and ZoneUpdate tags
Added factory method to create players within Engine
2019-11-12 19:40:22 -08:00
7c1c64823b Added MovementModeComponent and System to manage walk/run/neutral mode based on velocity 2019-11-12 17:18:05 -08:00
5754ba9b57 Added conditional coloring of selectable bbox to represent hovered state 2019-11-12 04:11:31 -08:00
318382ee34 Refactored SELECTABLE and SELECTED states to components 2019-11-12 04:08:34 -08:00
93be087793 Added static factory method to get or create a specified component for an entity 2019-11-12 01:55:54 -08:00
58a011ab07 Refactored alpha and transform updates to components and systems
Removed generic update flags from CofComponent
Created AlphaUpdate and TransformUpdate components to store flags of layers that need updating
AnimationLoaderSystem no longer sets alpha and transform values and sets flags instead
Created AlphaUpdateSystem and TransformUpdateSystem to update animation layers
2019-11-12 01:31:50 -08:00
5beafce761 Removed tile alignment from entity debug status text 2019-11-10 17:32:19 -08:00
364775954c Added support for setting animation speeds 2019-11-10 15:21:19 -08:00
29f619fe1b Added support for animation transformations / alphas
Added support for animation transformations / alphas
Changed CofComponent transformation field back to byte
Introduced update dirty flags in CofComponent to track transformation changes
2019-11-10 15:02:34 -08:00
32b20d284e Added run and walk speeds to VelocityComponent
Added run and walk speeds to VelocityComponent
Added RUNNING flag to tell if entity should use run or walk speed
2019-11-10 02:25:04 -08:00
4ed6792996 Added physics system placeholder which manages velocity application on position 2019-11-10 01:56:23 -08:00
caec8d7032 Small optimizations 2019-11-09 22:09:39 -08:00
c270dbb7a3 Added PlayerComponent
Added PlayerComponent containing D2S reference
Added alpha array to CofComponent
2019-11-09 22:02:40 -08:00
851cdc2aa5 Moved default angle to its own field 2019-11-09 21:52:11 -08:00