12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package me.hammerle.supersnuvi.tiles;
- import me.hammerle.snuviengine.api.Texture;
- import me.hammerle.supersnuvi.entity.Entity;
- import me.hammerle.supersnuvi.gamelogic.Level;
- import me.hammerle.supersnuvi.util.CollisionBox;
- import me.hammerle.supersnuvi.util.CollisionObject;
- import me.hammerle.supersnuvi.util.Face;
- public class SpikeTile extends BaseTile
- {
- private final static Texture.Animation SPIKES = Level.TILES.addAnimation(96, 32,
- "resources/spike_trap/spike_trap_frame1.png", "resources/spike_trap/spike_trap_frame2.png",
- "resources/spike_trap/spike_trap_frame3.png", "resources/spike_trap/spike_trap_frame4.png",
- "resources/spike_trap/spike_trap_frame5.png");
-
- private int counter;
- private int frame;
-
- public SpikeTile()
- {
- super(0.1875f, 0.0625f, 0.25f, 0.125f);
- counter = 0;
- frame = 0;
- super.setCollisionBox(CollisionBox.createScaledTileBox(0.1f, 0.1f, 0.9f, 0.9f));
- }
- @Override
- public void onEntityCollide(Entity ent, int x, int y, Face face)
- {
- super.onEntityCollide(ent, x, y, face);
- if(frame >= 1)
- {
- ent.getHealth().addHealth(-42.857f);
- }
- }
- @Override
- public void tick()
- {
- counter++;
- if((frame == 0 && counter > 20) || (frame != 0 && counter > 5))
- {
- counter = 0;
- frame = (frame + 1) % 5;
- SPIKES.nextFrame();
- }
- }
- }
|