- fixed windows build, using path, instead of path/filepath - added switch + door, implemented relation (pair_system missing yet) - fixed ldtk map loading, now using correct entitymap.png tileset
42 lines
978 B
Go
42 lines
978 B
Go
package components
|
|
|
|
import (
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
"github.com/mlange-42/arche/ecs"
|
|
)
|
|
|
|
// the Bond components binds two different entities together, one
|
|
// manipulates the other
|
|
type Bond struct {
|
|
ecs.Relation
|
|
Id, Ref string
|
|
}
|
|
|
|
// A door has a relation to a switch using the Bond component. The
|
|
// Switch opens or closes the door, depending on player actions. The
|
|
// door itself is merely dump and just does what being told.
|
|
|
|
type Door struct {
|
|
IsOpen bool
|
|
OpenSprite *ebiten.Image
|
|
CloseSprite *ebiten.Image
|
|
Id string
|
|
}
|
|
|
|
func (door *Door) Open() *ebiten.Image {
|
|
return door.OpenSprite
|
|
}
|
|
|
|
func (door *Door) Close() *ebiten.Image {
|
|
return door.CloseSprite
|
|
}
|
|
|
|
// the switch is being activated when the player runs over it, it can
|
|
// either use a timeout or just stay in its switching position
|
|
type Switch struct {
|
|
IsOpen bool
|
|
OpenSprite *ebiten.Image
|
|
CloseSprite *ebiten.Image
|
|
Ref string // the IId of the door
|
|
}
|