fixed hiddendoor tiles, now uses destruct shader no spriteset
This commit is contained in:
@@ -23,6 +23,7 @@ type DestroyableSystem struct {
|
||||
components.Renderable,
|
||||
components.Tilish,
|
||||
components.Solid]
|
||||
Cellsize int
|
||||
}
|
||||
|
||||
type DoorToRemove struct {
|
||||
@@ -30,7 +31,9 @@ type DoorToRemove struct {
|
||||
Position *components.Position
|
||||
}
|
||||
|
||||
func NewDestroyableSystem(world *ecs.World, gridcontainer *grid.GridContainer) System {
|
||||
func NewDestroyableSystem(world *ecs.World, gridcontainer *grid.GridContainer,
|
||||
cellsize int) System {
|
||||
|
||||
solidmapper := generic.NewMap4[
|
||||
components.Position,
|
||||
components.Renderable,
|
||||
@@ -42,6 +45,7 @@ func NewDestroyableSystem(world *ecs.World, gridcontainer *grid.GridContainer) S
|
||||
World: world,
|
||||
GridContainer: gridcontainer,
|
||||
SolidMapper: solidmapper,
|
||||
Cellsize: cellsize,
|
||||
}
|
||||
|
||||
return system
|
||||
@@ -81,7 +85,7 @@ func (system *DestroyableSystem) Update() error {
|
||||
} else {
|
||||
slog.Debug("activating destroyable", "doorpos", doorposition)
|
||||
door.Activated = true
|
||||
renderable.Image = door.GetNext()
|
||||
renderable.Damaged = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -99,14 +103,24 @@ func (system *DestroyableSystem) Update() error {
|
||||
|
||||
func (system *DestroyableSystem) Draw(screen *ebiten.Image) {
|
||||
// write transients (these are no tiles!)
|
||||
op := &ebiten.DrawImageOptions{}
|
||||
op := &ebiten.DrawRectShaderOptions{}
|
||||
|
||||
query := system.Selector.Query(system.World)
|
||||
|
||||
for query.Next() {
|
||||
pos, render, _ := query.Get()
|
||||
|
||||
op.GeoM.Reset()
|
||||
|
||||
op.Uniforms = map[string]any{
|
||||
"Damaged": render.Damaged,
|
||||
}
|
||||
|
||||
op.Images[0] = render.Image
|
||||
op.Images[1] = render.DamageImage
|
||||
|
||||
op.GeoM.Translate(float64(pos.X), float64(pos.Y))
|
||||
screen.DrawImage(render.Image, op)
|
||||
|
||||
screen.DrawRectShader(system.Cellsize, system.Cellsize, render.Shader, op)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user