Unit cargo transport system

This commit is contained in:
Anuken
2021-11-29 20:06:49 -05:00
parent 635027bb81
commit 6483d924af
32 changed files with 631 additions and 115 deletions

View File

@@ -83,6 +83,8 @@ public class Blocks{
duct, ductRouter, overflowDuct, ductBridge, ductUnloader,
surgeConveyor, surgeRouter,
unitCargoLoader, unitCargoUnloadPoint,
//liquid
mechanicalPump, rotaryPump, impulsePump, conduit, pulseConduit, platedConduit, liquidRouter, liquidContainer, liquidTank, liquidJunction, bridgeConduit, phaseConduit,
@@ -1554,7 +1556,7 @@ public class Blocks{
consumes.power(1.75f);
}};
//special transport blocks
//erekir transport blocks
duct = new Duct("duct"){{
requirements(Category.distribution, with(Items.graphite, 2));
@@ -1608,6 +1610,24 @@ public class Blocks{
consumes.power(3f / 60f);
}};
unitCargoLoader = new UnitCargoLoader("unit-cargo-loader"){{
requirements(Category.distribution, with(Items.silicon, 80, Items.phaseFabric, 60, Items.carbide, 50, Items.oxide, 40));
size = 3;
consumes.power(4f / 60f);
itemCapacity = 200;
}};
unitCargoUnloadPoint = new UnitCargoUnloadPoint("unit-cargo-unload-point"){{
requirements(Category.distribution, with(Items.silicon, 60, Items.thorium, 80));
size = 2;
itemCapacity = 100;
}};
//endregion
//region liquid

View File

@@ -67,6 +67,9 @@ public class UnitTypes{
//special block unit type
public static @EntityDef({Unitc.class, BlockUnitc.class}) UnitType block;
//transport
public static @EntityDef({Unitc.class, BuildingTetherc.class}) UnitType manifold;
//endregion
//region neoplasm
@@ -2601,7 +2604,7 @@ public class UnitTypes{
//TODO emanate (+ better names)
//endregion
//region internal
//region internal + special
block = new UnitType("block"){{
speed = 0f;
@@ -2613,6 +2616,32 @@ public class UnitTypes{
hidden = true;
}};
manifold = new UnitType("manifold"){{
defaultController = CargoAI::new;
isCounted = false;
allowedInPayloads = false;
logicControllable = false;
envDisabled = 0;
outlineColor = Pal.darkOutline;
lowAltitude = false;
flying = true;
drag = 0.06f;
speed = 2f;
rotateSpeed = 9f;
accel = 0.1f;
itemCapacity = 60;
health = 200f;
hitSize = 11f;
commandLimit = 0;
engineSize = 2.3f;
engineOffset = 6.5f;
setEnginesMirror(
new UnitEngine(24 / 4f, -24 / 4f, 2.3f, 315f)
);
}};
//endregion
//region neoplasm