Server-side fog clip + Omnidirectional flare + resprite

This commit is contained in:
Anuken
2022-02-20 10:17:20 -05:00
parent 5fa4c09b1c
commit 5fa28e6090
23 changed files with 153 additions and 52 deletions

View File

@@ -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;

View File

@@ -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:

View File

@@ -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;