mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-02-22 20:48:33 +07:00
Implementation begins
This commit is contained in:
parent
ad84329688
commit
63fa50d111
@ -93,7 +93,7 @@ public class EntityProcess extends BaseProcessor{
|
|||||||
if(!type.name().endsWith("Def")){
|
if(!type.name().endsWith("Def")){
|
||||||
err("All entity def names must end with 'Def'", type.e);
|
err("All entity def names must end with 'Def'", type.e);
|
||||||
}
|
}
|
||||||
String name = type.name().replace("Def", "Gen"); //TODO remove 'gen'
|
String name = type.name().replace("Def", "_"); //TODO remove extra underscore
|
||||||
TypeSpec.Builder builder = TypeSpec.classBuilder(name).addModifiers(Modifier.PUBLIC, Modifier.FINAL);
|
TypeSpec.Builder builder = TypeSpec.classBuilder(name).addModifiers(Modifier.PUBLIC, Modifier.FINAL);
|
||||||
|
|
||||||
Array<Stype> components = allComponents(type);
|
Array<Stype> components = allComponents(type);
|
||||||
@ -222,7 +222,7 @@ public class EntityProcess extends BaseProcessor{
|
|||||||
String interfaceName(Stype comp){
|
String interfaceName(Stype comp){
|
||||||
String suffix = "Comp";
|
String suffix = "Comp";
|
||||||
if(!comp.name().endsWith(suffix)){
|
if(!comp.name().endsWith(suffix)){
|
||||||
err("All components must have names that end with 'Comp'.", comp.e);
|
err("All components must have names that end with 'Comp'", comp.e);
|
||||||
}
|
}
|
||||||
return comp.name().substring(0, comp.name().length() - suffix.length()) + "c";
|
return comp.name().substring(0, comp.name().length() - suffix.length()) + "c";
|
||||||
}
|
}
|
||||||
|
@ -745,7 +745,6 @@ public class NetServer implements ApplicationListener{
|
|||||||
|
|
||||||
for(Entity entity : group.all()){
|
for(Entity entity : group.all()){
|
||||||
SyncTrait sync = (SyncTrait)entity;
|
SyncTrait sync = (SyncTrait)entity;
|
||||||
if(!sync.isSyncing()) continue;
|
|
||||||
|
|
||||||
//write all entities now
|
//write all entities now
|
||||||
dataStream.writeInt(entity.getID()); //write id
|
dataStream.writeInt(entity.getID()); //write id
|
||||||
|
@ -12,7 +12,9 @@ import mindustry.content.*;
|
|||||||
import mindustry.ctype.*;
|
import mindustry.ctype.*;
|
||||||
import mindustry.entities.bullet.*;
|
import mindustry.entities.bullet.*;
|
||||||
import mindustry.entities.units.*;
|
import mindustry.entities.units.*;
|
||||||
|
import mindustry.game.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
import mindustry.net.*;
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@ -21,9 +23,9 @@ import static mindustry.Vars.content;
|
|||||||
|
|
||||||
public class EntityComps{
|
public class EntityComps{
|
||||||
|
|
||||||
@Depends({HealthComp.class, VelComp.class, StatusComp.class})
|
@Depends({HealthComp.class, VelComp.class, StatusComp.class, TeamComp.class, ItemsComp.class})
|
||||||
class UnitComp{
|
class UnitComp{
|
||||||
|
//UnitDef type;
|
||||||
}
|
}
|
||||||
|
|
||||||
class OwnerComp{
|
class OwnerComp{
|
||||||
@ -35,7 +37,13 @@ public class EntityComps{
|
|||||||
BulletType bullet;
|
BulletType bullet;
|
||||||
|
|
||||||
void init(){
|
void init(){
|
||||||
bullet.init();
|
//TODO
|
||||||
|
bullet.init(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
void remove(){
|
||||||
|
//TODO
|
||||||
|
bullet.despawned(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,6 +73,27 @@ public class EntityComps{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class FlyingComp{
|
||||||
|
boolean flying;
|
||||||
|
}
|
||||||
|
|
||||||
|
class LegsComp{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class RotComp{
|
||||||
|
float rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
class TeamComp{
|
||||||
|
Team team = Team.sharded;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Depends(PosComp.class)
|
||||||
|
class SyncComp{
|
||||||
|
Interpolator interpolator;
|
||||||
|
}
|
||||||
|
|
||||||
abstract class PosComp implements Position{
|
abstract class PosComp implements Position{
|
||||||
float x, y;
|
float x, y;
|
||||||
|
|
||||||
@ -74,9 +103,24 @@ public class EntityComps{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abstract class DamageComp{
|
||||||
|
abstract float getDamage();
|
||||||
|
}
|
||||||
|
|
||||||
|
class MinerComp{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class BuilderComp{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class ItemsComp{
|
||||||
|
ItemStack item = new ItemStack();
|
||||||
|
}
|
||||||
|
|
||||||
@Depends(PosComp.class)
|
@Depends(PosComp.class)
|
||||||
class VelComp{
|
class VelComp{
|
||||||
//transient fields act as imports from any other component clases; these are ignored by the generator
|
|
||||||
transient float x, y;
|
transient float x, y;
|
||||||
|
|
||||||
final Vec2 vel = new Vec2();
|
final Vec2 vel = new Vec2();
|
||||||
|
@ -36,11 +36,6 @@ public interface SyncTrait extends Entity, TypeTrait{
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Whether syncing is enabled for this entity; true by default. */
|
|
||||||
default boolean isSyncing(){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Read and write sync data, usually position
|
//Read and write sync data, usually position
|
||||||
void write(DataOutput data) throws IOException;
|
void write(DataOutput data) throws IOException;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user