12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package me.hammerle.supersnuvi.entity.components;
- import me.hammerle.supersnuvi.entity.Entity;
- import me.hammerle.supersnuvi.tiles.Tile;
- public class DefaultMovement extends Movement
- {
- private final float jumpPower;
- private boolean inWater = false;
- private final float vx;
- private final float vy;
- private float friction = 1.0f;
-
- public DefaultMovement(float vx, float vy, float jumpPower)
- {
- this.jumpPower = jumpPower * Tile.SIZE_SCALE;
- this.vx = vx * Tile.SIZE_SCALE;
- this.vy = vy * Tile.SIZE_SCALE;
- }
-
- private float getFactor()
- {
- return inWater ? 0.65f : 1.0f;
- }
- @Override
- public float getGravityFactor()
- {
- return inWater ? 0.5f : 1.0f;
- }
-
- @Override
- public float getVelocityX()
- {
- return vx * getFactor();
- }
- @Override
- public float getVelocityY()
- {
- return vy * getFactor();
- }
- @Override
- public float getJumpPower()
- {
- return jumpPower * getFactor();
- }
- @Override
- public boolean hasGravity(Entity ent)
- {
- return true;
- }
- @Override
- public void setInWater(boolean b)
- {
- inWater = b;
- }
- @Override
- public boolean isInWater()
- {
- return inWater;
- }
- @Override
- public void setFrictionFactor(float f)
- {
- friction = f;
- }
- @Override
- public float getFrictionFactor()
- {
- return friction;
- }
- }
|