2: Move crafter patterns away + 3: Move wireless grid range out
This commit is contained in:
@@ -109,6 +109,11 @@ public interface INetworkMaster {
|
|||||||
*/
|
*/
|
||||||
List<ICraftingPattern> getPatterns();
|
List<ICraftingPattern> getPatterns();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rebuilds the pattern list.
|
||||||
|
*/
|
||||||
|
void rebuildPatterns();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns crafting patterns from an item stack.
|
* Returns crafting patterns from an item stack.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -30,13 +30,6 @@ public interface IWirelessGridHandler {
|
|||||||
*/
|
*/
|
||||||
void onClose(EntityPlayer player);
|
void onClose(EntityPlayer player);
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the range of the wireless grid handler.
|
|
||||||
*
|
|
||||||
* @param range The range
|
|
||||||
*/
|
|
||||||
void setRange(int range);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return The range wireless grids in this network can reach
|
* @return The range wireless grids in this network can reach
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -9,9 +9,11 @@ import refinedstorage.RefinedStorageGui;
|
|||||||
import refinedstorage.RefinedStorageItems;
|
import refinedstorage.RefinedStorageItems;
|
||||||
import refinedstorage.RefinedStorageUtils;
|
import refinedstorage.RefinedStorageUtils;
|
||||||
import refinedstorage.api.network.INetworkMaster;
|
import refinedstorage.api.network.INetworkMaster;
|
||||||
|
import refinedstorage.api.network.INetworkSlave;
|
||||||
import refinedstorage.api.network.IWirelessGridHandler;
|
import refinedstorage.api.network.IWirelessGridHandler;
|
||||||
import refinedstorage.api.network.WirelessGridConsumer;
|
import refinedstorage.api.network.WirelessGridConsumer;
|
||||||
import refinedstorage.item.ItemWirelessGrid;
|
import refinedstorage.item.ItemWirelessGrid;
|
||||||
|
import refinedstorage.tile.TileWirelessTransmitter;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@@ -20,8 +22,6 @@ import java.util.List;
|
|||||||
public class WirelessGridHandler implements IWirelessGridHandler {
|
public class WirelessGridHandler implements IWirelessGridHandler {
|
||||||
private INetworkMaster network;
|
private INetworkMaster network;
|
||||||
|
|
||||||
private int range;
|
|
||||||
|
|
||||||
private List<WirelessGridConsumer> consumers = new ArrayList<WirelessGridConsumer>();
|
private List<WirelessGridConsumer> consumers = new ArrayList<WirelessGridConsumer>();
|
||||||
private List<WirelessGridConsumer> consumersToRemove = new ArrayList<WirelessGridConsumer>();
|
private List<WirelessGridConsumer> consumersToRemove = new ArrayList<WirelessGridConsumer>();
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ public class WirelessGridHandler implements IWirelessGridHandler {
|
|||||||
public boolean onOpen(EntityPlayer player, EnumHand hand) {
|
public boolean onOpen(EntityPlayer player, EnumHand hand) {
|
||||||
int distance = (int) Math.sqrt(Math.pow(network.getPosition().getX() - player.posX, 2) + Math.pow(network.getPosition().getY() - player.posY, 2) + Math.pow(network.getPosition().getZ() - player.posZ, 2));
|
int distance = (int) Math.sqrt(Math.pow(network.getPosition().getX() - player.posX, 2) + Math.pow(network.getPosition().getY() - player.posY, 2) + Math.pow(network.getPosition().getZ() - player.posZ, 2));
|
||||||
|
|
||||||
if (distance > range) {
|
if (distance > getRange()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,12 +75,15 @@ public class WirelessGridHandler implements IWirelessGridHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getRange() {
|
public int getRange() {
|
||||||
return range;
|
int range = 0;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
for (INetworkSlave slave : network.getSlaves()) {
|
||||||
public void setRange(int range) {
|
if (slave instanceof TileWirelessTransmitter) {
|
||||||
this.range = range;
|
range += ((TileWirelessTransmitter) slave).getRange();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return range;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -27,7 +27,16 @@ public class TileCrafter extends TileSlave implements ICraftingPatternContainer
|
|||||||
public boolean valid(ItemStack stack) {
|
public boolean valid(ItemStack stack) {
|
||||||
return stack.getItem() == RefinedStorageItems.PATTERN && ItemPattern.isValid(stack);
|
return stack.getItem() == RefinedStorageItems.PATTERN && ItemPattern.isValid(stack);
|
||||||
}
|
}
|
||||||
});
|
}) {
|
||||||
|
@Override
|
||||||
|
protected void onContentsChanged(int slot) {
|
||||||
|
super.onContentsChanged(slot);
|
||||||
|
|
||||||
|
if (network != null) {
|
||||||
|
network.rebuildPatterns();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED));
|
private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED));
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ import refinedstorage.network.MessageGridItems;
|
|||||||
import refinedstorage.tile.ISynchronizedContainer;
|
import refinedstorage.tile.ISynchronizedContainer;
|
||||||
import refinedstorage.tile.TileBase;
|
import refinedstorage.tile.TileBase;
|
||||||
import refinedstorage.tile.TileCrafter;
|
import refinedstorage.tile.TileCrafter;
|
||||||
import refinedstorage.tile.TileWirelessTransmitter;
|
|
||||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||||
import refinedstorage.tile.config.RedstoneMode;
|
import refinedstorage.tile.config.RedstoneMode;
|
||||||
|
|
||||||
@@ -344,12 +343,36 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
return patterns.get(highestPattern);
|
return patterns.get(highestPattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void rebuildPatterns() {
|
||||||
|
patterns.clear();
|
||||||
|
|
||||||
|
for (INetworkSlave slave : slaves) {
|
||||||
|
if (slave instanceof TileCrafter && slave.canUpdate()) {
|
||||||
|
TileCrafter crafter = (TileCrafter) slave;
|
||||||
|
|
||||||
|
for (int i = 0; i < crafter.getPatterns().getSlots(); ++i) {
|
||||||
|
ItemStack pattern = crafter.getPatterns().getStackInSlot(i);
|
||||||
|
|
||||||
|
if (pattern != null && ItemPattern.isValid(pattern)) {
|
||||||
|
patterns.add(new CraftingPattern(
|
||||||
|
crafter.getPos().getX(),
|
||||||
|
crafter.getPos().getY(),
|
||||||
|
crafter.getPos().getZ(),
|
||||||
|
ItemPattern.isProcessing(pattern),
|
||||||
|
ItemPattern.getInputs(pattern),
|
||||||
|
ItemPattern.getOutputs(pattern),
|
||||||
|
ItemPattern.getByproducts(pattern)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void updateSlaves() {
|
private void updateSlaves() {
|
||||||
this.storages.clear();
|
this.storages.clear();
|
||||||
this.patterns.clear();
|
this.patterns.clear();
|
||||||
|
|
||||||
int range = 0;
|
|
||||||
|
|
||||||
for (INetworkSlave slave : slaves) {
|
for (INetworkSlave slave : slaves) {
|
||||||
if (!slave.canUpdate()) {
|
if (!slave.canUpdate()) {
|
||||||
continue;
|
continue;
|
||||||
@@ -358,26 +381,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
if (slave instanceof IStorageProvider) {
|
if (slave instanceof IStorageProvider) {
|
||||||
((IStorageProvider) slave).addStorages(storages);
|
((IStorageProvider) slave).addStorages(storages);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (slave instanceof TileWirelessTransmitter) {
|
|
||||||
range += ((TileWirelessTransmitter) slave).getRange();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (slave instanceof TileCrafter) {
|
|
||||||
TileCrafter crafter = (TileCrafter) slave;
|
|
||||||
|
|
||||||
for (int i = 0; i < crafter.getPatterns().getSlots(); ++i) {
|
|
||||||
ItemStack pattern = crafter.getPatterns().getStackInSlot(i);
|
|
||||||
|
|
||||||
if (pattern != null && ItemPattern.isValid(pattern)) {
|
|
||||||
patterns.add(new CraftingPattern(crafter.getPos().getX(), crafter.getPos().getY(), crafter.getPos().getZ(), ItemPattern.isProcessing(pattern), ItemPattern.getInputs(pattern), ItemPattern.getOutputs(pattern), ItemPattern.getByproducts(pattern)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wirelessGridHandler.setRange(range);
|
|
||||||
|
|
||||||
Collections.sort(storages, new Comparator<IStorage>() {
|
Collections.sort(storages, new Comparator<IStorage>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(IStorage left, IStorage right) {
|
public int compare(IStorage left, IStorage right) {
|
||||||
|
|||||||
Reference in New Issue
Block a user