Update tileset and game log for improved asset management and debugging

- Modified tileset configuration to include multiple tile images with updated dimensions.
- Enhanced game log to provide detailed startup information and entity loading for room1.
- Updated binary file for the game executable.
added climebol laders
This commit is contained in:
2026-04-26 12:13:55 +02:00
parent a6c8044e4a
commit ef550044ad
15 changed files with 2599 additions and 200354 deletions

View File

@@ -71,25 +71,47 @@ type TiledMap struct {
type Portal struct {
pos mgl64.Vec3
TargetMap string
SideImg *ebiten.Image
TopImg *ebiten.Image
}
func (p *Portal) Pos() mgl64.Vec3 { return p.pos }
func (p *Portal) SetPos(pos mgl64.Vec3) { p.pos = pos }
func (p *Portal) IsBlocking() bool { return false }
func (p *Portal) IsMovable() bool { return false }
func (p *Portal) Move(dx, dy, dz float64) {}
func (p *Portal) Damage(amount int) {}
func (p *Portal) Pickup() bool { return false }
func (p *Portal) GetHealth() int { return 100 }
func (p *Portal) DrawSide(screen interface{}, x, y float64, tint, alpha float32) {}
func (p *Portal) DrawTop(screen interface{}, x, y float64, tint, alpha float32) {}
func (p *Portal) Pos() mgl64.Vec3 { return p.pos }
func (p *Portal) SetPos(pos mgl64.Vec3) { p.pos = pos }
func (p *Portal) IsBlocking() bool { return false }
func (p *Portal) IsMovable() bool { return false }
func (p *Portal) IsClimbable() bool { return false }
func (p *Portal) Move(dx, dy, dz float64) {}
func (p *Portal) Damage(amount int) {}
func (p *Portal) Pickup() bool { return false }
func (p *Portal) GetHealth() int { return 100 }
func (p *Portal) DrawSide(screen interface{}, x, y float64, tint, alpha float32) {
scr := screen.(*ebiten.Image)
if p.SideImg != nil {
op := &ebiten.DrawImageOptions{}
op.GeoM.Translate(x, y)
op.ColorScale.Scale(tint, tint, tint, alpha)
scr.DrawImage(p.SideImg, op)
}
}
func (p *Portal) DrawTop(screen interface{}, x, y float64, tint, alpha float32) {
scr := screen.(*ebiten.Image)
if p.TopImg != nil {
op := &ebiten.DrawImageOptions{}
op.GeoM.Translate(x, y)
op.ColorScale.Scale(tint, tint, tint, alpha)
scr.DrawImage(p.TopImg, op)
}
}
// EntityDef definierar egenskaperna för ett tile-id
type EntityDef struct {
ID int `json:"id"`
TiledID int `json:"tiled_id"`
Solid bool `json:"solid"`
TargetMap string `json:"target_map,omitempty"`
ID int `json:"id"`
TiledID int `json:"tiled_id"`
Solid bool `json:"solid"`
Climbable bool `json:"climbable,omitempty"`
TargetMap string
SideImg *ebiten.Image
TopImg *ebiten.Image `json:"target_map,omitempty"`
Sprites struct {
Top string `json:"top"`
Side string `json:"side"`
@@ -142,9 +164,14 @@ func LoadWorldFromTiled(tmjPath string) (*World, error) {
if img, ok := loadedImages[name]; ok {
return img
}
img, _, err := ebitenutil.NewImageFromFile("assets/images/1 Tiles/" + name + ".png")
imgPath := "assets/images/1 Tiles/" + name + ".png"
if len(name) > 3 && name[:3] == "../" {
imgPath = "assets/images/" + name[3:] + ".png"
}
img, _, err := ebitenutil.NewImageFromFile(imgPath)
if err != nil {
fmt.Println("Warning, missing image:", name)
fmt.Println("Warning, missing image:", imgPath, err)
}
loadedImages[name] = img
return img
@@ -190,9 +217,9 @@ func LoadWorldFromTiled(tmjPath string) (*World, error) {
sideImg := loadImage(def.Sprites.Side)
if def.TargetMap != "" {
ent = &Portal{TargetMap: def.TargetMap}
ent = &Portal{TargetMap: def.TargetMap, SideImg: sideImg, TopImg: topImg}
} else {
ent = &Tile{SideImg: sideImg, TopImg: topImg}
ent = &Tile{SideImg: sideImg, TopImg: topImg, Climbable: def.Climbable}
}
} else {
// Fallback om def saknas