Files
Mindustry/core/src/mindustry/entities/comp/SyncComp.java
2020-09-04 11:07:01 -04:00

42 lines
1.1 KiB
Java

package mindustry.entities.comp;
import arc.util.io.*;
import mindustry.*;
import mindustry.annotations.Annotations.*;
import mindustry.gen.*;
import java.nio.*;
@Component
abstract class SyncComp implements Entityc{
transient long lastUpdated, updateSpacing;
//all these method bodies are internally generated
void snapSync(){}
void snapInterpolation(){}
void readSync(Reads read){}
void writeSync(Writes write){}
void readSyncManual(FloatBuffer buffer){}
void writeSyncManual(FloatBuffer buffer){}
void afterSync(){}
void interpolate(){}
@Override
public void update(){
//interpolate the player if:
//- this is a client and the entity is everything except the local player
//- this is a server and the entity is a remote player
if((Vars.net.client() && !isLocal()) || isRemote()){
interpolate();
}
}
@Override
public void remove(){
//notify client of removal
if(Vars.net.client()){
Vars.netClient.addRemovedEntity(id());
}
}
}