mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-03-06 07:30:35 +07:00
Added Vault block
This commit is contained in:
parent
81de9875d3
commit
2518564f92
@ -1,7 +1,7 @@
|
||||
#Autogenerated file. Do not modify.
|
||||
#Thu Feb 22 20:02:56 EST 2018
|
||||
#Thu Feb 22 23:52:21 EST 2018
|
||||
version=release
|
||||
androidBuildCode=280
|
||||
androidBuildCode=282
|
||||
name=Mindustry
|
||||
code=3.3
|
||||
build=custom build
|
||||
|
@ -5,7 +5,7 @@ import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.mindustry.resource.ItemStack;
|
||||
import io.anuke.mindustry.resource.Liquid;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.blocks.types.defense.CoreBlock;
|
||||
import io.anuke.mindustry.world.blocks.types.storage.CoreBlock;
|
||||
import io.anuke.mindustry.world.blocks.types.production.*;
|
||||
|
||||
public class ProductionBlocks{
|
||||
|
@ -42,7 +42,7 @@ public class Router extends Block{
|
||||
|
||||
if (tile.entity.totalItems() > 0) {
|
||||
if (tile.getExtra() != tile.getRotation()
|
||||
|| Mathf.chance(0.35)) { //sometimes dump backwards at a 1/4 chance... this somehow works?
|
||||
|| Mathf.chance(0.35)) { //sometimes dump backwards at a 0.35 chance... this somehow works?
|
||||
tryDump(tile, tile.getRotation(), null);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.anuke.mindustry.world.blocks.types.defense;
|
||||
package io.anuke.mindustry.world.blocks.types.storage;
|
||||
|
||||
import io.anuke.mindustry.net.Net;
|
||||
import io.anuke.mindustry.resource.Item;
|
@ -0,0 +1,63 @@
|
||||
package io.anuke.mindustry.world.blocks.types.storage;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.BlockBar;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.ucore.core.Timers;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
public class Vault extends Block {
|
||||
public int capacity;
|
||||
|
||||
public Vault(String name){
|
||||
super(name);
|
||||
solid = true;
|
||||
update = true;
|
||||
bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.totalItems()/capacity));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getStats(Array<String> list){
|
||||
super.getStats(list);
|
||||
list.add("[iteminfo]Capacity: " + capacity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(Tile tile){
|
||||
tile.setRotation((byte) Mathf.mod(tile.getRotation(), 4));
|
||||
|
||||
int iterations = Math.max(1, (int) (Timers.delta() + 0.4f));
|
||||
|
||||
for(int i = 0; i < iterations; i ++) {
|
||||
|
||||
if(!canOutput(tile, tile.getNearby(tile.getRotation()))){
|
||||
tile.setRotation((byte) ((tile.getRotation() + 1) % 4));
|
||||
}else if (tile.entity.totalItems() > 0) {
|
||||
if (tile.getExtra() != tile.getRotation()
|
||||
|| Mathf.chance(0.35)) { //sometimes dump backwards at a 0.35 chance... this somehow works?
|
||||
tryDump(tile, tile.getRotation(), null);
|
||||
}
|
||||
|
||||
tile.setRotation((byte) ((tile.getRotation() + 1) % 4));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleItem(Item item, Tile tile, Tile source){
|
||||
super.handleItem(item, tile, source);
|
||||
tile.setExtra(tile.relativeTo(source.x, source.y));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean acceptItem(Item item, Tile tile, Tile source) {
|
||||
return tile.entity.totalItems() < capacity;
|
||||
}
|
||||
|
||||
boolean canOutput(Tile tile, Tile to){
|
||||
return to != null && (to.block() instanceof Vault || to.block() instanceof CoreBlock);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user