Changes:
- use toggle tile for all toggling entities (transient, switch, door) - get rod of hard coded sprites (exception: particle class, to be fixed later) - changed switch sprite (rect instead of elipse)
This commit is contained in:
27
grid/grid.go
27
grid/grid.go
@@ -126,7 +126,7 @@ func NewGrid(world *ecs.World,
|
||||
case tile.Transient:
|
||||
entity := transmapper.New()
|
||||
pos, render, transient = transmapper.Get(entity)
|
||||
transient.Sprites = tile.TileNames
|
||||
transient.Wall = tile.ToggleSprite
|
||||
|
||||
case tile.Destroyable:
|
||||
entity := destructiblemapper.New()
|
||||
@@ -139,16 +139,16 @@ func NewGrid(world *ecs.World,
|
||||
case tile.Switch:
|
||||
entity := switchmapper.New()
|
||||
pos, render, _, switcher = switchmapper.Get(entity)
|
||||
switcher.CloseSprite = tile.Tiles[0]
|
||||
switcher.OpenSprite = tile.Tiles[1]
|
||||
switcher.CloseSprite = tile.Sprite
|
||||
switcher.OpenSprite = tile.ToggleSprite
|
||||
switcher.Ref = tile.Ref
|
||||
switches = append(switches, entity)
|
||||
|
||||
case tile.Door:
|
||||
entity := doormapper.New()
|
||||
pos, render, _, door = doormapper.Get(entity)
|
||||
door.CloseSprite = tile.Tiles[0]
|
||||
door.OpenSprite = tile.Tiles[1]
|
||||
door.CloseSprite = tile.Sprite
|
||||
door.OpenSprite = tile.ToggleSprite
|
||||
door.Id = tile.Id
|
||||
doors = append(doors, entity)
|
||||
|
||||
@@ -156,11 +156,8 @@ func NewGrid(world *ecs.World,
|
||||
log.Fatalln("unsupported tile type encountered")
|
||||
}
|
||||
|
||||
// FIXME: this image is never being used because it is
|
||||
// being overwritten in game/levels.go:LevelToSlice(). The
|
||||
// image is taken from the LDTK map, not from the Tile{}
|
||||
// definition anymore
|
||||
render.Image = tile.Sprite
|
||||
render.Pos = pos
|
||||
|
||||
default:
|
||||
// empty cell, this is where the player[s] move. No
|
||||
@@ -227,17 +224,5 @@ func (grid *Grid) SetFloorTile(point image.Point) {
|
||||
}
|
||||
|
||||
func (grid *Grid) SetSolidTile(tile *assets.Tile, point image.Point) {
|
||||
solidmapper := generic.NewMap4[
|
||||
components.Position,
|
||||
components.Renderable,
|
||||
components.Tilish,
|
||||
components.Solid](grid.World)
|
||||
|
||||
grid.Map[point] = tile
|
||||
|
||||
entity := solidmapper.New()
|
||||
pos, render, _, _ := solidmapper.Get(entity)
|
||||
|
||||
render.Image = tile.Sprite
|
||||
pos.Update(point.X*grid.Tilesize, point.Y*grid.Tilesize, grid.Tilesize)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user