Commit graph

138 commits

Author SHA1 Message Date
Michael Hadley
d3aa842bfe Adding collision prop to Tilemap 2017-11-24 08:23:40 -06:00
Michael Hadley
0e73bae5bc Extend Tileset to have methods for accessing properties and data per tile 2017-11-24 08:23:22 -06:00
Michael Hadley
805c0a0125 Break Tiled parser into modular pieces & extended capabilities
New features:
- Parsing text object
- Parsing "tiles" prop of tileset which contains collision & terrain information
2017-11-24 08:22:55 -06:00
Michael Hadley
fa8178f47b Port of ImageCollection from v2 2017-11-24 08:21:09 -06:00
Michael Hadley
0fd6779107 Adding a couple notes about methods that manipulate multiple tiles 2017-11-21 19:19:13 -06:00
Michael Hadley
e19de28932 Tilemap & layers now recalc faces (with a parameter for disabling recalc) 2017-11-21 19:18:34 -06:00
Michael Hadley
bdea565586 Better optimized calc/recalc faces methods for tiles
These eliminate the need for the preventRecalc method from v2. If an individual tile is changed with putTileAt, only the min number of faces will be recalculated (vs all faces being recalculated in v2)
2017-11-21 19:16:46 -06:00
Michael Hadley
dd8bbfa625 Update SetCollision methods to track which indices have been set to collide 2017-11-21 19:13:43 -06:00
Michael Hadley
e3dbf7c2d0 Fixing internal method name typos 2017-11-21 19:07:22 -06:00
Michael Hadley
105dc755ce Tilemap & layers: optimized SetCollision methods
v2 was structured in a way where a full pass through ALL tiles would occur if SetCollisionBetween or SetCollisionByExclusion was used. That's a huge penalty for large tilemaps, so this version duplicates some loop code for the sake of speed.
2017-11-20 20:08:50 -06:00
Michael Hadley
21584f922c Fix for last commit 2017-11-18 16:11:51 -06:00
Michael Hadley
3f14382951 Make naming consistent for accessing individual tiles (e.g. getTile vs getTileAt) 2017-11-18 15:41:26 -06:00
Michael Hadley
759252a078 Better handling of resizing a tilemap
Force the tilesets and tiles to inherit their tile size from the tilemap
2017-11-18 15:40:27 -06:00
Michael Hadley
e2960486a9 Filling out Tile with some methods & props from v2 2017-11-18 15:38:46 -06:00
Michael Hadley
b48d82daee Format name typo 2017-11-18 08:41:57 -06:00
Michael Hadley
d2f72fbe58 Create CullTiles component to allow static and dynamic layers to cull when needed
Fixes performance issue with canvas static tile renderer on large maps
2017-11-18 08:31:59 -06:00
Michael Hadley
b5fb0b8879 Refactor in order to update TilemapCreator & TilemapFactory 2017-11-17 15:55:12 -06:00
Michael Hadley
f82217e868 Move Parse to tilemap/Parse 2017-11-17 15:54:18 -06:00
Michael Hadley
49854bfd1b Format Typo 2017-11-17 15:49:32 -06:00
Michael Hadley
6da642bd99 Set alpha in dynamic layer canvas renderer
Set it directly because of the explicit save/restore commands throw the renderer's internal alpha out-of-sync
2017-11-17 15:31:41 -06:00
Michael Hadley
5535af2a17 Bug fix: tilemap layer renderer didn't account for layer xy position 2017-11-17 13:53:11 -06:00
Michael Hadley
09ed883f4d Remove old todos in static layer 2017-11-17 13:52:32 -06:00
Michael Hadley
b8e8d9d3aa Made data structure for maps and layers more explicit via classes & default props 2017-11-17 13:16:39 -06:00
Michael Hadley
3266974ea0 Tilemap & layer WorldXY methods: get, has, put, remove 2017-11-17 07:58:33 -06:00
Michael Hadley
b34d18e10c World to Tile conversion on maps and layers - both accounting for camera scroll 2017-11-16 20:36:45 -06:00
Michael Hadley
205675c387 Tilemap: prevent methods from acting on a static tilemap layer & warn user 2017-11-16 19:58:35 -06:00
Michael Hadley
b34f8a9dcc Associate tilemap layer data with the static or dynamic tilemap layer that "owns" it
This enforces 1x tilemap layer data <-> 1x static/dynamic tilemap layer and allows the Tilemap instance to look up the static/dynamic tilemap layer when needed.
2017-11-16 19:55:17 -06:00
Michael Hadley
83b7df2a73 Tilemap: destroy, removeAllLayers, setTileSize 2017-11-16 19:09:28 -06:00
Michael Hadley
63fb2e863f Tilemap & layer: ReplaceByIndex, FindByIndex, SwapByIndex 2017-11-16 19:08:58 -06:00
Michael Hadley
4c306d60a7 Last Tileset API method to match v2 2017-11-16 15:25:45 -06:00
Michael Hadley
e6c6d1ddce TIlemap & layers: GetTileAtWorldXY 2017-11-16 13:27:52 -06:00
Michael Hadley
c2268f3dee PutTile, RemoveTile & Tile#Copy 2017-11-16 13:09:07 -06:00
Michael Hadley
2b08daff32 Tilemap: modularize empty map generators & add createBlankDynamicLayer 2017-11-16 11:44:24 -06:00
Michael Hadley
efae7f5796 DynamicTilemapLayer updates that should have been in the last commit 2017-11-15 20:16:43 -06:00
Michael Hadley
355d9accf3 More tilemap & layer fun: Copy, FIll, Randomize, Shuffle, GetTilesWithin
Note: methods that mutate the tiles are not installed on StaticTilemapLayer
2017-11-15 20:06:07 -06:00
Michael Hadley
db5cab8494 Fix: wrong sign for canvas translation 2017-11-15 19:15:12 -06:00
Michael Hadley
b714e2afdf Add methods for looping over & accessing groups of tiles to map & layers 2017-11-15 16:36:41 -06:00
Michael Hadley
74842aae1d Tilemap & Layers: hasTileAt & better naming 2017-11-15 15:28:15 -06:00
Michael Hadley
1be6847a87 Tilemap: better naming, currentLayer -> currentLayerIndex 2017-11-15 15:05:11 -06:00
Michael Hadley
48f1e60743 Tilemap: reorder and add get/set layer 2017-11-15 14:55:26 -06:00
Michael Hadley
84a86ae0f7 Share GetTileAt across tilemap layers and tilemap 2017-11-15 13:50:56 -06:00
Michael Hadley
6d1b17258b Add flip capability to dynamic webgl & canvas tilemap renderers 2017-11-14 20:45:05 -06:00
Michael Hadley
6f4f571f98 Canvas tilemap layers: add alpha support 2017-11-14 16:13:07 -06:00
Michael Hadley
ece0bf7811 Tilemap layers WIP - both layers now use new Tile class 2017-11-14 15:35:18 -06:00
Michael Hadley
13ded52c6b New Tile class to be shared across static and dynamic layers 2017-11-14 15:34:33 -06:00
Michael Hadley
3f08689c44 Tilemap parsers: remove width & height parameters since they are inferred 2017-11-14 15:33:13 -06:00
Michael Hadley
bf19553135 Tilemap parsers: add ability to insert null instead of blank tile 2017-11-14 15:02:19 -06:00
Michael Hadley
a7424fa750 Progress on Tilemap - can now link tileset images and create layers 2017-11-11 10:38:52 -06:00
Michael Hadley
780bd76c6f Tilemap Parsers: refactor csv parser into csv parser + 2D array parser 2017-11-10 21:38:42 -06:00
Michael Hadley
1ba75cd50c ParseTiledJSON eslint auto fix 2017-11-10 17:13:11 -06:00
Michael Hadley
f9f6d95097 Tilemap: json tiled parser from v2 2017-11-10 15:57:38 -06:00
Michael Hadley
249fe58bba Tileset: tile lookup features 2017-11-10 15:56:14 -06:00
Michael Hadley
a76a6535e0 CSV tilemap parser & dummy tiled json parser 2017-11-09 20:50:25 -06:00
Michael Hadley
1b1bc41f81 Adding CSV & JSON tilemaps to BaseLoader 2017-11-09 12:21:06 -06:00
Michael Hadley
0804bf7595 Rename static & dynamic tilemaps -> tilemap layer 2017-11-09 12:18:23 -06:00
Richard Davey
0d38e232e6 Both Static and Dynamic Tilemaps support the new property skipIndexZero which allows them to skip over index 0 tiles. Works in both canvas and webgl. Fix #3052 2017-11-03 16:52:57 +00:00
Felipe Alfonso
9649347287 Static Tilemap WebGL Renderer now applies camera transform matrix correctly 2017-11-01 14:55:01 -03:00
Richard Davey
b4edeaec10 Updated GameObjectCreator to use same system as GameObjectFactory. 2017-09-14 02:27:29 +01:00
Richard Davey
1340e6930f Refactored the GameObjectFactory so it's now populated by the GameObjects directly, avoids globbing all GOs into it 2017-09-14 01:32:10 +01:00
Felipe Alfonso
dc45945d99 WebGL Specific Game Objects work with restored context, except EffectLayer and RenderPass. That would require developer to rebind render targets and resources 2017-09-13 17:54:32 -03:00
Richard Davey
ae13ac702e The Canvas and WebGL Renderers are now included based on Webpack feature flags, allowing us to build a 'WebGL only' or 'Canvas only' version of Phaser 3. 2017-09-13 15:28:17 +01:00
Richard Davey
6f3ec9fb9e All Game Objects now use GameObject.RENDER_MASK to compare against instead of a local property. 2017-09-13 00:58:25 +01:00
Felipe Alfonso
de35793fda Dynamic Tilemap Canvas Renderer 2017-08-24 23:46:33 -03:00
Felipe Alfonso
25630f2af5 Static Tilemap Culling added 2017-08-23 19:27:51 -03:00
Felipe Alfonso
7e957d5cb6 bruteforce tilemap canvas rendering 2017-08-22 20:26:17 -03:00
Felipe Alfonso
5d52bd956b Fix for StaticTilemap after defining vertex attributes 2017-08-18 13:17:48 -03:00
photonstorm
dbc1298752 Moved access of game property to sys.game to keep it inline with the Injection Map. 2017-08-16 17:15:12 +01:00
Richard Davey
fe2f82c229 Updated Camera.Ignore so it works with the canvas renderer as well 2017-08-15 23:51:37 +01:00
Felipe Alfonso
9856200fdf Added camera gameobject filtering 2017-08-15 16:42:04 -03:00
photonstorm
52bb355429 Removing old and incorrect jsdoc blocks ready for first documentation pass. 2017-08-01 13:10:08 +01:00
photonstorm
d804e056ed Renaming from State to Scene internally.
This is one monster update.
2017-07-14 14:50:51 +01:00
Felipe Alfonso
7eaa45673c Simple camera culling 2017-07-06 21:17:27 -04:00
Richard Davey
f770712c2a Huge refactoring of States, plugins and object factories 2017-07-04 01:59:31 +01:00
Felipe Alfonso
1594036cfc Tile border added to static tilemap 2017-06-27 17:49:06 -04:00
Felipe Alfonso
b61635b51b Added tile border support to dynamic tilemap 2017-06-27 17:22:39 -04:00
photonstorm
812197744f Comments added. 2017-06-26 15:08:26 +01:00
photonstorm
c5242004c4 Added in BuildFromConfig support for Static and Dynamic Tilemaps. 2017-06-26 13:16:27 +01:00
Felipe Alfonso
fe835266fd Fixed issue with camera bounds and static tilemap culling 2017-06-23 18:42:08 -04:00
Felipe Alfonso
441becd618 Static Tilemap Culling 2017-06-23 18:16:23 -04:00
Felipe Alfonso
25977cfc4d Dynamic tilemap webgl rendering 2017-06-21 22:19:03 -04:00
Felipe Alfonso
8c3a857850 Mapping tile texture from the center 2017-06-09 15:15:07 -04:00
Felipe Alfonso
c3eb8bff3b StaticTilemap position + scrollFactor 2017-06-09 11:43:09 -04:00
Felipe Alfonso
b7fd964df1 Tilemap Progress 2017-06-09 00:00:12 -04:00
Felipe Alfonso
9a1bb506ee Camera Scroll added to Tile map 2017-06-01 18:42:57 -04:00
Felipe Alfonso
ea71909b4e Tile rendering correctly 2017-06-01 17:29:51 -04:00
Felipe Alfonso
dc035ddaab Tilemap Rendering 2017-06-01 17:05:50 -04:00
Felipe Alfonso
d19d1f6b8d Tilemap Static Mesh Construction 2017-05-31 13:40:51 -04:00
Felipe Alfonso
c470df9db5 Static Tilemap Base 2017-05-30 12:55:15 -04:00