Commit Graph
1115 Commits
Author SHA1 Message Date
Dylan Wilson 25bc9addee cleaned up renaming bitvector32 code 2018-07-12 20:40:17 +10:00
Dylan Wilson 50bf89faf5 made the monogame pcl a private asset in the nuget packages and fixed a few things in the cake build 2018-07-10 22:12:55 +10:00
stefanrbkandDylan Wilson 433e458af0 Real Tiled Group Support (#522)
* Change from storing layers by index to Dictionary key

Models are now stored with the `TiledMapLayer` they are part of.

* Allow render calls via TiledMapLayer

* Add TiledMapGroupLayer and model build recursion for groups

* Add rendering support for TiledMapGroupLayer

* Update TiledMapReader to read TiledMapGroupLayers

* Update Features Demo to Include a Map with a Layer Group

* Update TiledMapWriter and TiledMapProcessor to Support Groups

* Update TiledMap to Report Layers Correctly
2018-07-08 21:34:07 +10:00
Dylan Wilson ad9bd17745 renamed the demos and their folders to be more consistent 2018-07-06 20:47:11 +10:00
Dylan Wilson 7f8e88df7c Merge branch 'badguys' into develop 2018-07-06 20:35:43 +10:00
stefanrbkandDylan Wilson e89fe97061 Build Textures With Prefered Transparent Color (#521)
Pass the transparent color provided by the .TMX or .TSX file to the Texture processor for custom transparency.
2018-07-06 10:11:25 +10:00
Dylan Wilson 6e11f4a7d9 merged develop and fixed the very broken demos 2018-07-04 21:50:01 +10:00
stefanrbk e84895d0e6 Removed BuildAndLoadAsset for BuildAsset 2018-07-02 14:07:30 -05:00
Dylan Wilson cd42ba1923 Merge branch 'develop' into badguys 2018-07-01 20:43:41 +10:00
Dylan Wilson 4bee9e1cc3 created raindrops demo to test new ecs 2018-06-28 23:20:08 +10:00
Dylan Wilson c8db244932 cleaning the api 2018-06-27 21:41:05 +10:00
Dylan Wilson a2eda72620 rejigged the base systems classes and interfaces 2018-06-27 21:19:20 +10:00
stefanrbk ff7ddd5f08 Fixed AddDependency/Build(AndLoad)Asset issues 2018-06-25 19:31:03 -05:00
Dylan Wilson 3c023d242f entity pooling and other refactorings 2018-06-25 22:05:36 +10:00
Dylan Wilson dce7354a57 optimized entity subscriptions 2018-06-23 21:54:39 +10:00
Dylan Wilson 547799d93c it's pretty darn close to fast 2018-06-22 22:59:52 +10:00
stefanrbk f3ec438997 Fix build errors 2018-06-20 13:34:07 -05:00
Dylan Wilson 6e73a59055 some code cleanup and documentation 2018-06-20 22:02:28 +10:00
stefanrbk eabd275a24 Merge branch 'develop' into Content 2018-06-19 17:27:48 -05:00
Dylan Wilson 89dbb71a1a removed the old ecs and refactored the platformer demo to use the new ecs 2018-06-19 21:24:56 +10:00
Jon SeamanandDylan Wilson 0482f3ef20 Fix circlef contains (#515)
* Fix CircleF.Contains

* Added test for CircleF.Contains point
2018-06-18 20:33:13 +10:00
Jon SeamanandDylan Wilson 4c9a0136b1 [WIP] Demo conversion to .net core (#514)
* Demo.SpaceGame working

* Delete unused files, update icon

* Demo.StarWarrior building

* Removed unused files

* Demo.Features Collision

* Platform Demo Building

* Nuclex Gui Project

* got the old platformer demo running but it's still missing stuff

* Demo.Features added to solution

* Demo.Features building

Currently, most demos don't build and were excluded from the project.

* Demo.Features.NetCore building

* Demo.Features building and running

* First demo usable

* Close button

* Tiles + Sprite Demo

* More demos working

* Fix Back() for new Gui

* Remove old project files
2018-06-18 20:29:40 +10:00
Jon SeamanandDylan Wilson 862b64ac7b Rectangles now collide with circles (#513)
* Added CircleF and RectangleF intersection method

* Simplified shape implementation

* Docs

* Collision system uses shapes

* QuadTree collision allows circles

* ICollisionActor remove setter

+semver: patch

* Added position to IShapeF

+semver: patch

* Added CollisionComponent contains

* Fix penetration vector between circles

* Circle Rectangle penetration vector

* Added test for Rectangle Rectangle Collision

* Add docs, fix test
2018-06-14 21:27:37 +10:00
Dylan Wilson b71dd0fdfa Merge branch 'develop' into badguys 2018-06-14 21:14:21 +10:00
Dylan Wilson b8cf165347 removed dirty hack from the projects and fixed it in the cake script 2018-06-14 21:12:58 +10:00
Dylan Wilson 207010fbd7 trying out a dirty hack to hopefully workaround issue #495 2018-06-14 20:40:38 +10:00
Dylan Wilson e46c61609b removed incomplete test 2018-06-13 23:04:38 +10:00
Dylan Wilson 9b2d3670e5 almost finished this beast 2018-06-13 23:03:22 +10:00
stefanrbk a0e3c57c30 Comments and remove file accessing
Added comments into the importers and processors to show off what the new code does. Removed unneeded code involving locating external files as `Content` handles this for us automatically.
2018-06-11 18:33:02 -05:00
Dylan Wilson ffb0d1353b just some clean up and prep tonight 2018-06-11 22:38:35 +10:00
Dylan Wilson a9ec00a21f implemented aspect filtering builder 2018-06-10 23:49:35 +10:00
stefanrbk 044712f6aa Added remaining .TMX format features
Added the remaining features of the .TMX Tiled Map format. Removed the parts of the format which aren't needed for rendering, like `TiledMapTerrainContent`. Terrains and the newer WangSets are only used in constructing a map, not for rendering. Added exception throws for non-implemented parts of the format.
2018-06-09 13:45:02 -05:00
Dylan Wilson ed508d8b8c making progress on the new ecs framework 2018-06-09 23:09:06 +10:00
stefanrbk 1cf24d01ae Added Rough Group Layer Support
Added the ability to load files with groups. Rendering system still doesn't understand layer groups yet, so this allows groups to be initially loaded, but the sub layers of the group are extracted to the layer root, things like offsets for the group are applied directly to the sub layers, and the groups themselves are removed.
2018-06-08 14:53:57 -05:00
Dylan Wilson d86f767cce rewriting ecs from scratch 2018-06-09 00:02:07 +10:00
stefanrbk 92dc951099 Object Templates
Added handling of `TiledMapObject` templates. Tile object templates are currently not working as the tileset info is currently ignored.
2018-06-07 15:17:15 -05:00
stefanrbk 119026ea50 Decoupled FirstGlobalIdentifier from Tileset
`FirstGlobalIdentifier` is only used with the map to reference the tileset which contains the tile referenced. It isn't really part of the definition of a `TiledMapTileset` even though the `.TMX` format includes it with the `<tileset>` tag
2018-06-06 14:59:38 -05:00
stefanrbk 0ca4ae70da Importer and Processor
Added importer and processor for `TiledMapTilesetContent`
2018-06-06 11:53:46 -05:00
Dylan Wilson c4bca0d7ad this is just a rollback point 2018-06-06 20:32:47 +10:00
stefanrbk 561c437023 Extract Writer and Reader for TIlesets
Pulled out the methods for writing and reading the content files for tilesets into their own classes to allow loading tilesets independently from the maps.
2018-06-05 14:51:36 -05:00
stefanrbk 184fba5928 Include tileset textures internally
Changed the reference of tileset textures so the `Texture2DContent` isn't referenced, but built into the file as tilesets don't reference the same texture more than once.
2018-06-05 09:16:55 -05:00
stefanrbk 7ce9911696 TiledMapImageContent.Content
Adds the `Content` field to `TiledMapImageContent` to reference the `Texture2DContent` instead of manually loading the content with the `ContentManager`.
2018-06-04 17:26:03 -05:00
Dylan Wilson 5457d80727 improved and simplified collision detection in the platformer demo 2018-06-04 22:38:36 +10:00
Dylan Wilson 511a56d00a tweaks and bug fixes 2018-06-02 22:30:40 +10:00
Dylan Wilson 35540dd181 playing with sprite animations 2018-06-01 23:30:46 +10:00
Dylan Wilson 1a64b291ea animated sprite 2018-05-31 22:21:43 +10:00
Dylan Wilson 0ec192543d refactoring the platformer to use the entity component system 2018-05-31 22:12:59 +10:00
Dylan Wilson 8cc2ce285e hacking at the platformer demo to find room for improvement 2018-05-30 22:31:27 +10:00
Jon SeamanandDylan Wilson ce9fc2459b QuadTree Collision Library (#504)
* Created unit test project for collisions.

* Started on tests

* Created unit test project for collisions.

* Started on tests

* Update collision test

* CollisionInfo docs

* More docs for CollisionGrid and Cell

* Fix obsolete warning for RectangleF.Intersect

* Summary for CollisionGrid and CollisionGridCell

* QuadTree collision implemented

 - Ported from C++ from Game Physics Cookbook chapter 6, 2D Optimizations

* Small refactor for QuadTree naming

* First tests for QuadTree

* Fix test

* COde Cleanup

* Added DefaultMaxObjectsPerNode

* Add missed Query code

* Insert Tests and bugfix

* Fix bug with QuadTree.Shake

* Fix namespaces

* Query tests and fix

* Additional test for Query

* Initial QuadTreeCollision Component

* Basic collision demo working

* Spikey ball colliding with walls

* Improved the collision demo

* Update QuadTree

* Added comment for CollisionComponent

* Ignore test that needs fixed

* Rename QuadTree to Quadtree

* Fix penetration vector

* Update to 2.0 and xUnit
2018-05-30 20:26:34 +10:00
Dylan Wilson e715f33573 loading tiled map into platformer demo 2018-05-29 21:59:50 +10:00