123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package me.hammerle.supersnuvi.entity.components.ai;
- import me.hammerle.snuviengine.api.Shader;
- import me.hammerle.supersnuvi.entity.Entity;
- import me.hammerle.supersnuvi.rendering.LevelRenderer;
- import me.hammerle.supersnuvi.tiles.Tile;
- import me.hammerle.supersnuvi.util.Face;
- import me.hammerle.supersnuvi.util.Utils;
- public class BoxController extends Controller
- {
- private final float startX;
- private final float endX;
-
- public BoxController(int type)
- {
- startX = (256.0f + Tile.SIZE * type) / 512.0f;
- endX = (288.0f + Tile.SIZE * type) / 512.0f;
- }
- @Override
- public void renderTick(Entity ent, float lag)
- {
- float x = Utils.interpolate(ent.getLastX(), ent.getX(), lag);
- float y = Utils.interpolate(ent.getLastY(), ent.getY(), lag);
- LevelRenderer.TILES.bind();
- Shader.getTextureRenderer().drawRectangle(x, y,
- x + ent.getWidth(), y + ent.getHeight(),
- startX, 0.125f,
- endX, 0.1875f);
- }
- @Override
- public void onCollideWithEntity(Entity ent, Entity other, Face face)
- {
- if(face == Face.LEFT && other.getOwnForceX() > 0.0f)
- {
- ent.applyForce(other.getOwnForceX(), 0.0f);
- }
- else if(face == Face.RIGHT && other.getOwnForceX() < 0.0f)
- {
- ent.applyForce(other.getOwnForceX(), 0.0f);
- }
- }
- }
|