started with switch/door pair

This commit is contained in:
Thomas von Dein 2024-03-28 13:53:03 +01:00
parent dc2574643c
commit f6d5385d35
7 changed files with 38 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

BIN
assets/sprites/door.ase Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

BIN
assets/sprites/switch.ase Normal file

Binary file not shown.

38
components/pairs.go Normal file
View File

@ -0,0 +1,38 @@
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
}
// 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
}
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
}