Server-side fog clip + Omnidirectional flare + resprite
This commit is contained in:
@@ -7,6 +7,7 @@ import arc.math.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.util.*;
|
||||
import arc.util.pooling.*;
|
||||
import mindustry.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.content.*;
|
||||
import mindustry.entities.units.*;
|
||||
@@ -254,10 +255,12 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
|
||||
|
||||
@Override
|
||||
public void draw(){
|
||||
if(unit != null && unit.inFogTo(Vars.player.team())) return;
|
||||
|
||||
Draw.z(Layer.playerName);
|
||||
float z = Drawf.text();
|
||||
|
||||
Font font = Fonts.def;
|
||||
Font font = Fonts.outline;
|
||||
GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new);
|
||||
final float nameHeight = 11;
|
||||
final float textHeight = 15;
|
||||
|
||||
@@ -21,6 +21,14 @@ abstract class SyncComp implements Entityc{
|
||||
void afterSync(){}
|
||||
void interpolate(){}
|
||||
|
||||
boolean isSyncHidden(Player player){
|
||||
return false;
|
||||
}
|
||||
|
||||
void handleSyncHidden(){
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(){
|
||||
//interpolate the player if:
|
||||
|
||||
@@ -134,6 +134,19 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
|
||||
return rotation;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Replace
|
||||
public boolean isSyncHidden(Player player){
|
||||
//shooting reveals position so bullets can be seen
|
||||
return !isShooting() && inFogTo(player.team());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleSyncHidden(){
|
||||
remove();
|
||||
netClient.clearRemovedEntity(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float range(){
|
||||
return type.maxRange;
|
||||
|
||||
Reference in New Issue
Block a user