From 5b11875a5ae5e6a07618896e8e32c804c1d1c285 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 9 Apr 2018 20:25:08 -0400 Subject: [PATCH] Better conveyor physics / Performance test maps / Unit inventory begin --- core/assets/maps/conveyorhell.mmap | Bin 0 -> 198462 bytes core/assets/maps/routerhell.mmap | Bin 0 -> 198462 bytes core/assets/version.properties | 2 +- .../src/io/anuke/mindustry/entities/Unit.java | 1 + .../mindustry/entities/UnitInventory.java | 10 +++++++++ .../entities/units/GroundUnitType.java | 3 ++- .../anuke/mindustry/input/InputHandler.java | 2 +- .../io/anuke/mindustry/input/PlaceMode.java | 2 +- core/src/io/anuke/mindustry/io/Maps.java | 2 +- .../anuke/mindustry/resource/AmmoEntry.java | 11 +++++++++ .../io/anuke/mindustry/resource/AmmoType.java | 2 +- .../anuke/mindustry/resource/ItemStack.java | 1 - .../anuke/mindustry/resource/LiquidStack.java | 15 +++++++++++++ .../io/anuke/mindustry/world/BaseBlock.java | 1 - .../world/blocks/types/defense/Turret.java | 11 +-------- .../types/defense/turrets/ItemTurret.java | 1 + .../blocks/types/distribution/Conveyor.java | 21 +++++++++++------- 17 files changed, 59 insertions(+), 26 deletions(-) create mode 100644 core/assets/maps/conveyorhell.mmap create mode 100644 core/assets/maps/routerhell.mmap create mode 100644 core/src/io/anuke/mindustry/entities/UnitInventory.java create mode 100644 core/src/io/anuke/mindustry/resource/AmmoEntry.java create mode 100644 core/src/io/anuke/mindustry/resource/LiquidStack.java diff --git a/core/assets/maps/conveyorhell.mmap b/core/assets/maps/conveyorhell.mmap new file mode 100644 index 0000000000000000000000000000000000000000..cd3ec1488273d497a9b9d6e40e43e124a51ce8a2 GIT binary patch literal 198462 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 a0;3@?8UmvsFd71*Aut*Oqai?62mk<14+CBR literal 0 HcmV?d00001 diff --git a/core/assets/version.properties b/core/assets/version.properties index 6464636998..b2c2bb69f0 100644 --- a/core/assets/version.properties +++ b/core/assets/version.properties @@ -1,5 +1,5 @@ #Autogenerated file. Do not modify. -#Mon Apr 09 18:28:57 EDT 2018 +#Mon Apr 09 20:22:59 EDT 2018 version=release androidBuildCode=896 name=Mindustry diff --git a/core/src/io/anuke/mindustry/entities/Unit.java b/core/src/io/anuke/mindustry/entities/Unit.java index 0c6ab1cf54..99c64878ea 100644 --- a/core/src/io/anuke/mindustry/entities/Unit.java +++ b/core/src/io/anuke/mindustry/entities/Unit.java @@ -18,6 +18,7 @@ public abstract class Unit extends SyncEntity { public static final float hitDuration = 9f; public StatusController status = new StatusController(); + public UnitInventory inventory = new UnitInventory(); public Team team = Team.blue; public Vector2 velocity = new Vector2(); public float hitTime; diff --git a/core/src/io/anuke/mindustry/entities/UnitInventory.java b/core/src/io/anuke/mindustry/entities/UnitInventory.java new file mode 100644 index 0000000000..d1690cba9a --- /dev/null +++ b/core/src/io/anuke/mindustry/entities/UnitInventory.java @@ -0,0 +1,10 @@ +package io.anuke.mindustry.entities; + +import io.anuke.mindustry.resource.*; + +public class UnitInventory { + public final AmmoEntry ammo = new AmmoEntry(AmmoType.getByID(0), 0); + public final ItemStack item = new ItemStack(Item.getByID(0), 0); + public final LiquidStack liquid = new LiquidStack(Liquid.getByID(0), 0); + public float power = 0f; +} diff --git a/core/src/io/anuke/mindustry/entities/units/GroundUnitType.java b/core/src/io/anuke/mindustry/entities/units/GroundUnitType.java index d04160851f..4e3fe0e970 100644 --- a/core/src/io/anuke/mindustry/entities/units/GroundUnitType.java +++ b/core/src/io/anuke/mindustry/entities/units/GroundUnitType.java @@ -26,8 +26,9 @@ public abstract class GroundUnitType extends UnitType{ public GroundUnitType(String name) { super(name); - maxVelocity = 2f; + maxVelocity = 1.1f; speed = 0.05f; + drag = 0.4f; } @Override diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index 18e4e8a85c..70f02ff9df 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -43,7 +43,7 @@ public abstract class InputHandler extends InputAdapter{ } public boolean cursorNear(){ - return Vector2.dst(player.x, player.y, getBlockX() * tilesize, getBlockY() * tilesize) <= placerange; + return Vector2.dst(player.x, player.y, getBlockX() * tilesize, getBlockY() * tilesize) <= placerange || debug; } public boolean tryPlaceBlock(int x, int y, boolean sound){ diff --git a/core/src/io/anuke/mindustry/input/PlaceMode.java b/core/src/io/anuke/mindustry/input/PlaceMode.java index 02a6cc03b2..c15fc6a642 100644 --- a/core/src/io/anuke/mindustry/input/PlaceMode.java +++ b/core/src/io/anuke/mindustry/input/PlaceMode.java @@ -109,7 +109,7 @@ public enum PlaceMode{ } }, areaDelete{ - int maxlen = 20; + int maxlen = debug ? 999999: 20; int tilex; int tiley; int endx; diff --git a/core/src/io/anuke/mindustry/io/Maps.java b/core/src/io/anuke/mindustry/io/Maps.java index c58e795aa5..2213304385 100644 --- a/core/src/io/anuke/mindustry/io/Maps.java +++ b/core/src/io/anuke/mindustry/io/Maps.java @@ -17,7 +17,7 @@ import static io.anuke.mindustry.Vars.mapExtension; public class Maps implements Disposable{ /**List of all built-in maps.*/ - private static final String[] defaultMapNames = {"test", "trinity"}; + private static final String[] defaultMapNames = {"test", "trinity", "routerhell", "conveyorhell"}; /**Tile format version.*/ private static final int version = 0; diff --git a/core/src/io/anuke/mindustry/resource/AmmoEntry.java b/core/src/io/anuke/mindustry/resource/AmmoEntry.java new file mode 100644 index 0000000000..749bededa6 --- /dev/null +++ b/core/src/io/anuke/mindustry/resource/AmmoEntry.java @@ -0,0 +1,11 @@ +package io.anuke.mindustry.resource; + +public class AmmoEntry{ + public AmmoType type; + public int amount; + + public AmmoEntry(AmmoType type, int amount) { + this.type = type; + this.amount = amount; + } +} diff --git a/core/src/io/anuke/mindustry/resource/AmmoType.java b/core/src/io/anuke/mindustry/resource/AmmoType.java index d2528391d8..f4c8955eba 100644 --- a/core/src/io/anuke/mindustry/resource/AmmoType.java +++ b/core/src/io/anuke/mindustry/resource/AmmoType.java @@ -53,7 +53,7 @@ public class AmmoType { return allTypes; } - public static AmmoType getByID(byte id){ + public static AmmoType getByID(int id){ return allTypes.get(id); } } diff --git a/core/src/io/anuke/mindustry/resource/ItemStack.java b/core/src/io/anuke/mindustry/resource/ItemStack.java index 8fea6b7fe0..c11bce57b1 100644 --- a/core/src/io/anuke/mindustry/resource/ItemStack.java +++ b/core/src/io/anuke/mindustry/resource/ItemStack.java @@ -3,7 +3,6 @@ package io.anuke.mindustry.resource; public class ItemStack{ public Item item; public int amount; - public float pos; public ItemStack(Item item, int amount){ this.item = item; diff --git a/core/src/io/anuke/mindustry/resource/LiquidStack.java b/core/src/io/anuke/mindustry/resource/LiquidStack.java new file mode 100644 index 0000000000..7e5b128e1c --- /dev/null +++ b/core/src/io/anuke/mindustry/resource/LiquidStack.java @@ -0,0 +1,15 @@ +package io.anuke.mindustry.resource; + +public class LiquidStack { + public Liquid liquid; + public float amount; + + public LiquidStack(Liquid liquid, float amount){ + this.liquid = liquid; + this.amount = amount; + } + + public boolean equals(LiquidStack other){ + return other != null && other.liquid == liquid && other.amount == amount; + } +} diff --git a/core/src/io/anuke/mindustry/world/BaseBlock.java b/core/src/io/anuke/mindustry/world/BaseBlock.java index d96524936b..b7e60cfd59 100644 --- a/core/src/io/anuke/mindustry/world/BaseBlock.java +++ b/core/src/io/anuke/mindustry/world/BaseBlock.java @@ -162,7 +162,6 @@ public abstract class BaseBlock { } } - i = (byte)((i + 1) % nearby.length); tile.setDump(i); } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java index 4f7df2430d..3fb6e4afe4 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java @@ -6,6 +6,7 @@ import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.entities.*; import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Palette; +import io.anuke.mindustry.resource.AmmoEntry; import io.anuke.mindustry.resource.AmmoType; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.BlockGroup; @@ -252,16 +253,6 @@ public abstract class Turret extends Block{ public TileEntity getEntity(){ return new TurretEntity(); } - - public static class AmmoEntry{ - public final AmmoType type; - public int amount; - - public AmmoEntry(AmmoType type, int amount) { - this.type = type; - this.amount = amount; - } - } public static class TurretEntity extends TileEntity{ public TileEntity blockTarget; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/turrets/ItemTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/turrets/ItemTurret.java index 2860137838..2668763c6c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/turrets/ItemTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/turrets/ItemTurret.java @@ -1,6 +1,7 @@ package io.anuke.mindustry.world.blocks.types.defense.turrets; import com.badlogic.gdx.utils.ObjectMap; +import io.anuke.mindustry.resource.AmmoEntry; import io.anuke.mindustry.resource.AmmoType; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.BarType; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java index ec998f60c0..6f585e291b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java @@ -96,20 +96,25 @@ public class Conveyor extends Block{ public void unitOn(Tile tile, Unit unit) { ConveyorEntity entity = tile.entity(); - float angle = tile.getRotation() * 90f; - float speed = this.speed * tilesize / 1.5f; - float tx = Angles.trnsx(angle, 1f), ty = Angles.trnsy(angle, 1f); - unit.velocity.add(tx * speed * Timers.delta(), ty * speed * Timers.delta()); + float speed = this.speed * tilesize / 2.3f; + float tx = Geometry.d4[tile.getRotation()].x, ty = Geometry.d4[tile.getRotation()].y; + + float min; if(Math.abs(tx) > Math.abs(ty)){ - float rx = tile.worldx() + tx/2f*tilesize; - entity.minCarry = Math.min(entity.minCarry, Mathf.clamp((entity.x - rx) * tx / tilesize)); + float rx = tile.worldx() - tx/2f*tilesize; + min = Mathf.clamp((unit.x - rx) * tx / tilesize); }else{ - float ry = tile.worldy() + ty/2f*tilesize; - entity.minCarry = Math.min(entity.minCarry, Mathf.clamp((entity.y - ry) * ty / tilesize)); + float ry = tile.worldy() - ty/2f*tilesize; + min = Mathf.clamp((unit.y - ry) * ty / tilesize); } + entity.minCarry = Math.min(entity.minCarry, min); entity.carrying += unit.getMass(); + + if(entity.convey.size * itemSpace < 0.9f){ + unit.velocity.add(tx * speed * Timers.delta(), ty * speed * Timers.delta()); + } } @Override