- 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:
2024-03-31 20:16:15 +02:00
parent f6f2172f11
commit faf0fd99c2
24 changed files with 334 additions and 339 deletions

View File

@@ -8,6 +8,7 @@ import (
"openquell/grid"
"openquell/observers"
"openquell/systems"
"openquell/util"
"strings"
"github.com/hajimehoshi/ebiten/v2"
@@ -173,20 +174,27 @@ func LevelToSlice(game *Game, level *ldtkgo.Level, tilesize int) (Map, Map) {
tile := assets.Tiles[entity.Identifier]
tile.Id = entity.IID
ref := entity.PropertyByIdentifier("Entity_ref")
if ref != nil {
if ref.Value != nil {
refid := ref.Value.(map[string]interface{})
tile.Ref = refid["entityIid"].(string)
slog.Debug("LOAD TILE", "tileref",
tile.Ref, "tileid", tile.Id,
"name", entity.Identifier,
"isswitch", tile.Switch,
"isdoor", tile.Door,
)
}
toggleRect := util.GetPropertyToggleTile(entity)
if toggleRect != nil {
tile.ToggleSprite = tileset.SubImage(
image.Rect(toggleRect.X, toggleRect.Y,
toggleRect.X+toggleRect.W,
toggleRect.Y+toggleRect.H)).(*ebiten.Image)
}
tile.Ref = util.GetPropertyRef(entity)
if tile.Transient {
slog.Debug("LOAD TILE", "tileref",
tile.Ref, "tileid", tile.Id,
"name", entity.Identifier,
"isswitch", tile.Switch,
"isdoor", tile.Door,
"togglerect", toggleRect,
"tilerect", entity.TileRect,
)
}
tileRect := entity.TileRect
tile.Sprite = tileset.SubImage(