From 3b612fc61d0f43fbb49da6e94ad38fd9ff882322 Mon Sep 17 00:00:00 2001 From: josua Date: Wed, 17 Jun 2020 10:54:51 +1000 Subject: [PATCH] Fixed button collision detection --- layer.bdf | Bin 334 -> 346 bytes settings.bdf | Bin 0 -> 106 bytes src/projectzombie/display/DisplayWindow.java | 2 +- .../display/lighting/TileLighting.java | 6 +- src/projectzombie/entity/Entity.java | 6 ++ src/projectzombie/entity/EntityBullet.java | 4 +- src/projectzombie/entity/EntityContainer.java | 99 ++++++++++++++++++ src/projectzombie/entity/EntityExplosion.java | 16 ++- src/projectzombie/entity/EntityFlare.java | 8 +- .../entity/EntityHoldsEntities.java | 6 ++ src/projectzombie/entity/EntityTnt.java | 59 +++++++++-- src/projectzombie/entity/EntityZombie.java | 2 +- .../entity/EntityZombieArmored.java | 2 +- .../entity/particle/ParticleBlood.java | 53 ++++++---- .../entity/particle/ParticleSpark.java | 48 ++++++--- .../entity/particle/ParticleWater.java | 18 +++- .../entity/player/EntityPlayer.java | 5 +- src/projectzombie/init/Entities.java | 2 + src/projectzombie/init/Models.java | 6 +- src/projectzombie/menu/gui/Button.java | 39 +++---- src/projectzombie/tiles/TileWater.java | 4 +- src/projectzombie/world/chunk/Chunk.java | 63 ++++++++--- src/resources/shader/environmentRenderer.fsh | 4 +- src/resources/texture/gui/health_empty.png | Bin 5336 -> 952 bytes src/resources/texture/gui/health_full.png | Bin 4999 -> 829 bytes src/resources/texture/particle/blood.png | Bin 556 -> 5597 bytes src/resources/texture/particle/smoke_0.png | Bin 1005 -> 5789 bytes src/resources/texture/particle/smoke_1.png | Bin 984 -> 5770 bytes src/resources/texture/particle/smoke_2.png | Bin 985 -> 5682 bytes src/resources/texture/particle/smoke_3.png | Bin 1021 -> 5670 bytes src/resources/texture/particle/smoke_4.png | Bin 1046 -> 5741 bytes src/resources/texture/particle/smoke_5.png | Bin 932 -> 5688 bytes src/resources/texture/tile/boss_portal.png | Bin 2349 -> 8070 bytes 33 files changed, 343 insertions(+), 109 deletions(-) create mode 100644 settings.bdf create mode 100644 src/projectzombie/entity/EntityContainer.java create mode 100644 src/projectzombie/entity/EntityHoldsEntities.java diff --git a/layer.bdf b/layer.bdf index ab26ebd76a3ecdbc730ef32ddf3837786e9e4aef..da678f0b9feb6cd67d845d4d77d59359427a4472 100644 GIT binary patch delta 176 zcmX@dbc<<%j;HR6+EDB3r@shIILsveXP)@qIlm7*s&wEBR_n^tv3$9*QsbC<`jls> z%)RLeN7DA3{r6j3h3}rX%ApFklE;#q(*Kj(Yb?5_6)R6H?Tl$y)HPEwhaQN9 i6#jgv*kL8#jF4DniG*X*Ql2%j&RoD`#*jR9@mc_MAWXLa delta 164 zcmcb`bdG6)j;CZz<;G9mb_S?0Wu~QVP+W8J=h8}5 zjf?!3nsp3T<+@}(_Vx5-UUvM-k2zO1U6DzVJon|2jZfgUBYVEc1gv6K3*A56F?@Pe XbCIgIXPREb1kP1w entities.length) { + continue; + } + // Spawn some blood if entities were killed if(killed_entities) - l.spawnEntity(new ParticleBlood(rand, new Vec2d(px, py), py)); + entities[upto + 1] = new ParticleBlood(new Vec2d(px, py)); // Spawn some smoke - l.spawnEntity(new ParticleSmoke(new Vec2d(px, py))); + entities[upto] = new ParticleSmoke(new Vec2d(px, py)); + + upto += multiplier; } } } + layer.spawnEntity(new EntityContainer(pos, entities)); + // Play the explosion sound Sounds.EXPLOSION.play(new Vec3d(pos.x, pos.y, 0), 1); diff --git a/src/projectzombie/entity/EntityFlare.java b/src/projectzombie/entity/EntityFlare.java index 0eb6d57..3dd3249 100755 --- a/src/projectzombie/entity/EntityFlare.java +++ b/src/projectzombie/entity/EntityFlare.java @@ -2,6 +2,8 @@ package projectzombie.entity; import bdf.types.BdfObject; import gl_engine.vec.Vec2d; +import projectzombie.init.Models; +import projectzombie.model.Model; import projectzombie.world.layer.Layer; public class EntityFlare extends EntityTnt @@ -12,7 +14,6 @@ public class EntityFlare extends EntityTnt @Override protected void explode(Layer layer) { - kill(); } public EntityFlare(Vec2d pos, double angle) { @@ -25,5 +26,10 @@ public class EntityFlare extends EntityTnt public double getLightLevel() { return getLightWithHeight(1 - (this.pos.y * (1/12.0))) * ( rand.nextDouble() / 10.0 + 0.9 ); } + + @Override + public Model getModel() { + return active ? Models.ENTITY_FLARE : Models.EMPTY; + } } diff --git a/src/projectzombie/entity/EntityHoldsEntities.java b/src/projectzombie/entity/EntityHoldsEntities.java new file mode 100644 index 0000000..e9ab372 --- /dev/null +++ b/src/projectzombie/entity/EntityHoldsEntities.java @@ -0,0 +1,6 @@ +package projectzombie.entity; + +public interface EntityHoldsEntities +{ + public Entity[] getEntities(); +} diff --git a/src/projectzombie/entity/EntityTnt.java b/src/projectzombie/entity/EntityTnt.java index a7e9022..b0f7673 100755 --- a/src/projectzombie/entity/EntityTnt.java +++ b/src/projectzombie/entity/EntityTnt.java @@ -5,22 +5,42 @@ import bdf.types.BdfObject; import gl_engine.MathHelpers; import gl_engine.vec.Vec2d; import gl_engine.vec.Vec3d; +import projectzombie.entity.particle.ParticleSmoke; import projectzombie.entity.particle.ParticleSpark; import projectzombie.init.Models; import projectzombie.model.Model; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; -public class EntityTnt extends Entity +public class EntityTnt extends Entity implements EntityHeight, EntityHoldsEntities { + protected boolean active = true; protected double height = 0.4; protected Vec3d velocity; protected int explode_time; private int explode_radius; private double explode_damage; + private ParticleSpark[] smoke_particles; + + @Override + public Entity[] getEntities() { + return smoke_particles; + } + + @Override + public double getHeight() { + return height; + } + + @Override + public void setHeight(double height) { + this.height = height; + } public EntityTnt(BdfObject bdf) { super(bdf); + + this.smoke_particles = new ParticleSpark[50]; } @Override @@ -60,6 +80,7 @@ public class EntityTnt extends Entity this.crossUnWalkable = true; this.goThroughSolid = false; this.explode_damage = explode_damage; + this.smoke_particles = new ParticleSpark[100]; this.emitsLight = true; // Set to 2.5 seconds @@ -68,18 +89,38 @@ public class EntityTnt extends Entity protected void explode(Layer layer) { - // Create an explosion layer.spawnEntity(new EntityExplosion(pos, explode_radius, explode_damage)); - - // Delete the entity - kill(); - return; } @Override public void tick(Chunk chunk, Layer layer) { super.tick(chunk, layer); + int dead_particle = 0; + int dead_particle_count = 0; + + for(int i=0;i