42 lines
946 B
Java
42 lines
946 B
Java
package mindustry.entities.def;
|
|
|
|
import mindustry.annotations.Annotations.*;
|
|
import mindustry.content.*;
|
|
import mindustry.entities.*;
|
|
import mindustry.gen.*;
|
|
import mindustry.world.blocks.*;
|
|
|
|
import static mindustry.Vars.collisions;
|
|
|
|
//just a proof of concept
|
|
@Component
|
|
abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc{
|
|
@Import float x, y;
|
|
|
|
@Replace
|
|
@Override
|
|
public void move(float cx, float cy){
|
|
if(isGrounded()){
|
|
if(!EntityCollisions.waterSolid(tileX(), tileY())){
|
|
collisions.move(this, cx, cy, EntityCollisions::waterSolid);
|
|
}
|
|
}else{
|
|
x += cx;
|
|
y += cy;
|
|
}
|
|
}
|
|
|
|
@Replace
|
|
@Override
|
|
public boolean canDrown(){
|
|
return false;
|
|
}
|
|
|
|
@Replace
|
|
public float floorSpeedMultiplier(){
|
|
Floor on = isFlying() ? Blocks.air.asFloor() : floorOn();
|
|
return on.isDeep() ? 1.3f : 1f;
|
|
}
|
|
}
|
|
|