Functioning 5x5 reconstructor

This commit is contained in:
Anuken 2020-06-08 21:34:08 -04:00
parent 6501071510
commit 99518f4e1d
12 changed files with 2167 additions and 2101 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 763 B

After

Width:  |  Height:  |  Size: 764 B

Before After
Before After

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 852 KiB

After

Width:  |  Height:  |  Size: 860 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 KiB

After

Width:  |  Height:  |  Size: 272 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 915 KiB

After

Width:  |  Height:  |  Size: 925 KiB

Before After
Before After

View file

@ -416,6 +416,8 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree
public boolean dumpPayload(@NonNull Payload todump){
if(proximity.size == 0) return false;
int dump = this.dump;
for(int i = 0; i < proximity.size; i++){
Tilec other = proximity.get((i + dump) % proximity.size);
@ -448,6 +450,8 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree
}
public void dumpLiquid(Liquid liquid){
int dump = this.dump;
for(int i = 0; i < proximity.size; i++){
incrementDump(proximity.size);
Tilec other = proximity.get((i + dump) % proximity.size);
@ -545,7 +549,8 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree
* containers, it gets added to the block's inventory.
*/
public void offload(Item item){
Seq<Tilec> proximity = proximity();
int dump = this.dump;
useContent(item);
for(int i = 0; i < proximity.size; i++){
@ -564,7 +569,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree
* Tries to put this item into a nearby container. Returns success. Unlike #offload(), this method does not change the block inventory.
*/
public boolean put(Item item){
Seq<Tilec> proximity = proximity();
int dump = this.dump;
useContent(item);
for(int i = 0; i < proximity.size; i++){
@ -591,7 +596,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree
public boolean dump(Item todump){
if(!block.hasItems || items.total() == 0 || (todump != null && !items.has(todump))) return false;
Seq<Tilec> proximity = proximity();
int dump = this.dump;
if(proximity.size == 0) return false;
@ -681,7 +686,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree
out.clear();
if(power == null) return out;
for(Tilec other : proximity()){
for(Tilec other : proximity){
if(other != null && other.power() != null
&& !(block.consumesPower && other.block().consumesPower && !block.outputsPower && !other.block().outputsPower)
&& !power.links.contains(other.pos())){
@ -783,7 +788,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree
Geometry.circle(tileX(), tileY(), range, (x, y) -> {
Tilec other = world.ent(x, y);
if(other != null && other.block() instanceof PowerNode && ((PowerNode)other.block()).linkValid(other, this) && !PowerNode.insulated(other, this) && !other.proximity().contains(this) &&
!(block.outputsPower && proximity().contains(p -> p.power() != null && p.power().graph == other.power().graph))){
!(block.outputsPower && proximity.contains(p -> p.power() != null && p.power().graph == other.power().graph))){
tempTiles.add(other.tile());
}
});

View file

@ -8,7 +8,6 @@ import arc.util.ArcAnnotate.*;
import arc.util.*;
import arc.util.io.*;
import mindustry.*;
import mindustry.annotations.Annotations.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
import mindustry.graphics.*;
@ -22,7 +21,6 @@ import mindustry.world.consumers.*;
public class BlockForge extends PayloadAcceptor{
public float buildSpeed = 0.4f;
public @Load(value = "@-out", fallback = "factory-out") TextureRegion outRegion;
public BlockForge(String name){
super(name);

View file

@ -2,7 +2,6 @@ package mindustry.world.blocks.experimental;
import arc.graphics.g2d.*;
import arc.util.*;
import mindustry.annotations.Annotations.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
import mindustry.graphics.*;
@ -20,10 +19,6 @@ public class BlockLoader extends PayloadAcceptor{
public int itemsLoaded = 5;
public float liquidsLoaded = 5f;
public @Load(value = "@-top", fallback = "factory-top") TextureRegion topRegion;
public @Load(value = "@-out", fallback = "factory-out") TextureRegion outRegion;
public @Load(value = "@-in", fallback = "factory-in") TextureRegion inRegion;
public BlockLoader(String name){
super(name);

View file

@ -5,6 +5,7 @@ import arc.math.*;
import arc.math.geom.*;
import arc.util.ArcAnnotate.*;
import arc.util.io.*;
import mindustry.annotations.Annotations.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.world.*;
@ -15,6 +16,10 @@ import static mindustry.Vars.tilesize;
public class PayloadAcceptor extends Block{
public float payloadSpeed = 0.5f;
public @Load(value = "@-top", fallback = "factory-top-$size") TextureRegion topRegion;
public @Load(value = "@-out", fallback = "factory-out-$size") TextureRegion outRegion;
public @Load(value = "@-in", fallback = "factory-in-$size") TextureRegion inRegion;
public PayloadAcceptor(String name){
super(name);
@ -92,7 +97,7 @@ public class PayloadAcceptor extends Block{
if(movePayload(payload)){
payload = null;
}
}else if(front != null && !front.tile().solid()){
}else if(front == null || !front.tile().solid()){
dumpPayload();
}
}

View file

@ -3,7 +3,6 @@ package mindustry.world.blocks.units;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.util.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.entities.*;
import mindustry.entities.units.*;
@ -17,9 +16,6 @@ import mindustry.world.meta.*;
import static mindustry.Vars.state;
public class Reconstructor extends UnitBlock{
public @Load(value = "@-top", fallback = "factory-top") TextureRegion topRegion;
public @Load(value = "@-out", fallback = "factory-out") TextureRegion outRegion;
public @Load(value = "@-in", fallback = "factory-in") TextureRegion inRegion;
public float constructTime = 60 * 2;
public UnitType[][] upgrades = {};

View file

@ -10,7 +10,6 @@ import arc.struct.*;
import arc.util.*;
import arc.util.io.*;
import mindustry.*;
import mindustry.annotations.Annotations.*;
import mindustry.entities.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
@ -23,8 +22,6 @@ import mindustry.world.consumers.*;
import mindustry.world.meta.*;
public class UnitFactory extends UnitBlock{
public @Load(value = "@-top", fallback = "factory-top") TextureRegion topRegion;
public @Load(value = "@-out", fallback = "factory-out") TextureRegion outRegion;
public int[] capacities;
public UnitPlan[] plans = new UnitPlan[0];