This commit is contained in:
Anuken
2020-10-08 09:15:33 -04:00
parent 29ccc5010a
commit 3ec243a49b
4 changed files with 15 additions and 10 deletions

View File

@@ -53,7 +53,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
transient Block block;
transient Seq<Building> proximity = new Seq<>(8);
transient boolean updateFlow;
transient byte dump;
transient byte cdump;
transient int rotation;
transient boolean enabled = true;
transient float enabledControlTime;
@@ -443,7 +443,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
public boolean dumpPayload(Payload todump){
if(proximity.size == 0) return false;
int dump = this.dump;
int dump = this.cdump;
for(int i = 0; i < proximity.size; i++){
Building other = proximity.get((i + dump) % proximity.size);
@@ -477,7 +477,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
public void dumpLiquid(Liquid liquid){
int dump = this.dump;
int dump = this.cdump;
for(int i = 0; i < proximity.size; i++){
incrementDump(proximity.size);
@@ -577,7 +577,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
* containers, it gets added to the block's inventory.
*/
public void offload(Item item){
int dump = this.dump;
int dump = this.cdump;
for(int i = 0; i < proximity.size; i++){
incrementDump(proximity.size);
@@ -595,7 +595,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
* 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){
int dump = this.dump;
int dump = this.cdump;
for(int i = 0; i < proximity.size; i++){
incrementDump(proximity.size);
@@ -621,7 +621,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
public boolean dump(Item todump){
if(!block.hasItems || items.total() == 0 || (todump != null && !items.has(todump))) return false;
int dump = this.dump;
int dump = this.cdump;
if(proximity.size == 0) return false;
@@ -656,7 +656,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
public void incrementDump(int prox){
dump = (byte)((dump + 1) % prox);
cdump = (byte)((cdump + 1) % prox);
}
/** Used for dumping items. */

View File

@@ -188,6 +188,11 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
if(unit.isRemote()){
unit.snapInterpolation();
}
//reset selected block when switching units
if(!headless && isLocal()){
control.input.block = null;
}
}
Events.fire(new UnitChangeEvent(self(), unit));