Fixed wireless signal starting from Controller instead of per Wireless Transmitter individually, fixes #161
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
### 0.8.6
|
### 0.8.6
|
||||||
**Bugfixes**
|
**Bugfixes**
|
||||||
- Fixed External Storage disconnecting on world reload
|
- Fixed External Storage disconnecting on world reload
|
||||||
|
- Fixed wireless signal starting from Controller instead of per Wireless Transmitter individually
|
||||||
- Huge performance improvements to large networks
|
- Huge performance improvements to large networks
|
||||||
|
|
||||||
### 0.8.5
|
### 0.8.5
|
||||||
|
|||||||
@@ -30,11 +30,6 @@ public interface IWirelessGridHandler {
|
|||||||
*/
|
*/
|
||||||
void onClose(EntityPlayer player);
|
void onClose(EntityPlayer player);
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The range wireless grids in this network can reach
|
|
||||||
*/
|
|
||||||
int getRange();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Drains energy from the wireless grid of a player.
|
* Drains energy from the wireless grid of a player.
|
||||||
*
|
*
|
||||||
|
|||||||
18
src/main/java/refinedstorage/api/network/IWirelessTransmitter.java
Executable file
18
src/main/java/refinedstorage/api/network/IWirelessTransmitter.java
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
package refinedstorage.api.network;
|
||||||
|
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a node that can send a wireless signal.
|
||||||
|
*/
|
||||||
|
public interface IWirelessTransmitter {
|
||||||
|
/**
|
||||||
|
* @return The range in blocks of this transmitter, starting from {@link IWirelessTransmitter#getOrigin()}
|
||||||
|
*/
|
||||||
|
int getRange();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The position where the wireless signal starts
|
||||||
|
*/
|
||||||
|
BlockPos getOrigin();
|
||||||
|
}
|
||||||
@@ -8,12 +8,8 @@ import refinedstorage.RefinedStorage;
|
|||||||
import refinedstorage.RefinedStorageGui;
|
import refinedstorage.RefinedStorageGui;
|
||||||
import refinedstorage.RefinedStorageItems;
|
import refinedstorage.RefinedStorageItems;
|
||||||
import refinedstorage.RefinedStorageUtils;
|
import refinedstorage.RefinedStorageUtils;
|
||||||
import refinedstorage.api.network.INetworkMaster;
|
import refinedstorage.api.network.*;
|
||||||
import refinedstorage.api.network.INetworkNode;
|
|
||||||
import refinedstorage.api.network.IWirelessGridHandler;
|
|
||||||
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;
|
||||||
@@ -54,9 +50,27 @@ public class WirelessGridHandler implements IWirelessGridHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
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));
|
boolean inRange = false;
|
||||||
|
|
||||||
if (distance > getRange()) {
|
for (INetworkNode node : network.getNodes()) {
|
||||||
|
if (node instanceof IWirelessTransmitter) {
|
||||||
|
IWirelessTransmitter transmitter = (IWirelessTransmitter) node;
|
||||||
|
|
||||||
|
int distance = (int) Math.sqrt(
|
||||||
|
Math.pow(transmitter.getOrigin().getX() - player.posX, 2) +
|
||||||
|
Math.pow(transmitter.getOrigin().getY() - player.posY, 2) +
|
||||||
|
Math.pow(transmitter.getOrigin().getZ() - player.posZ, 2)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (distance < transmitter.getRange()) {
|
||||||
|
inRange = true;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!inRange) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,19 +94,6 @@ public class WirelessGridHandler implements IWirelessGridHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getRange() {
|
|
||||||
int range = 0;
|
|
||||||
|
|
||||||
for (INetworkNode node : network.getNodes()) {
|
|
||||||
if (node instanceof TileWirelessTransmitter) {
|
|
||||||
range += ((TileWirelessTransmitter) node).getRange();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return range;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drainEnergy(EntityPlayer player, int energy) {
|
public void drainEnergy(EntityPlayer player, int energy) {
|
||||||
WirelessGridConsumer consumer = getConsumer(player);
|
WirelessGridConsumer consumer = getConsumer(player);
|
||||||
|
|||||||
@@ -3,18 +3,20 @@ package refinedstorage.tile;
|
|||||||
import net.minecraft.inventory.Container;
|
import net.minecraft.inventory.Container;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import refinedstorage.RefinedStorage;
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.RefinedStorageItems;
|
import refinedstorage.RefinedStorageItems;
|
||||||
import refinedstorage.RefinedStorageUtils;
|
import refinedstorage.RefinedStorageUtils;
|
||||||
|
import refinedstorage.api.network.IWirelessTransmitter;
|
||||||
import refinedstorage.container.ContainerWirelessTransmitter;
|
import refinedstorage.container.ContainerWirelessTransmitter;
|
||||||
import refinedstorage.inventory.BasicItemHandler;
|
import refinedstorage.inventory.BasicItemHandler;
|
||||||
import refinedstorage.inventory.BasicItemValidator;
|
import refinedstorage.inventory.BasicItemValidator;
|
||||||
import refinedstorage.item.ItemUpgrade;
|
import refinedstorage.item.ItemUpgrade;
|
||||||
|
|
||||||
public class TileWirelessTransmitter extends TileNode {
|
public class TileWirelessTransmitter extends TileNode implements IWirelessTransmitter {
|
||||||
private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_RANGE));
|
private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_RANGE));
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -42,10 +44,16 @@ public class TileWirelessTransmitter extends TileNode {
|
|||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getRange() {
|
public int getRange() {
|
||||||
return RefinedStorage.INSTANCE.wirelessTransmitterBaseRange + (RefinedStorageUtils.getUpgradeCount(upgrades, ItemUpgrade.TYPE_RANGE) * RefinedStorage.INSTANCE.wirelessTransmitterRangePerUpgrade);
|
return RefinedStorage.INSTANCE.wirelessTransmitterBaseRange + (RefinedStorageUtils.getUpgradeCount(upgrades, ItemUpgrade.TYPE_RANGE) * RefinedStorage.INSTANCE.wirelessTransmitterRangePerUpgrade);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockPos getOrigin() {
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
public BasicItemHandler getUpgrades() {
|
public BasicItemHandler getUpgrades() {
|
||||||
return upgrades;
|
return upgrades;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ misc.refinedstorage:storage.full=%d%% full
|
|||||||
misc.refinedstorage:wireless_grid.tooltip.0=X: %d
|
misc.refinedstorage:wireless_grid.tooltip.0=X: %d
|
||||||
misc.refinedstorage:wireless_grid.tooltip.1=Y: %d
|
misc.refinedstorage:wireless_grid.tooltip.1=Y: %d
|
||||||
misc.refinedstorage:wireless_grid.tooltip.2=Z: %d
|
misc.refinedstorage:wireless_grid.tooltip.2=Z: %d
|
||||||
misc.refinedstorage:wireless_grid.out_of_range=Controller out of range.
|
misc.refinedstorage:wireless_grid.out_of_range=There is no Wireless Transmitter in range.
|
||||||
misc.refinedstorage:wireless_grid.not_found=Controller not found.
|
misc.refinedstorage:wireless_grid.not_found=Controller not found.
|
||||||
|
|
||||||
misc.refinedstorage:pattern.inputs=Inputs
|
misc.refinedstorage:pattern.inputs=Inputs
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ misc.refinedstorage:storage.full=%d%% plein
|
|||||||
misc.refinedstorage:wireless_grid.tooltip.0=X: %d
|
misc.refinedstorage:wireless_grid.tooltip.0=X: %d
|
||||||
misc.refinedstorage:wireless_grid.tooltip.1=Y: %d
|
misc.refinedstorage:wireless_grid.tooltip.1=Y: %d
|
||||||
misc.refinedstorage:wireless_grid.tooltip.2=Z: %d
|
misc.refinedstorage:wireless_grid.tooltip.2=Z: %d
|
||||||
misc.refinedstorage:wireless_grid.out_of_range=Contrôleur hors de portés.
|
misc.refinedstorage:wireless_grid.out_of_range=Il n'y a pas un Émetteur sans Fil dans la gamme.
|
||||||
misc.refinedstorage:wireless_grid.not_found=Contrôleur non trouvé.
|
misc.refinedstorage:wireless_grid.not_found=Contrôleur non trouvé.
|
||||||
|
|
||||||
misc.refinedstorage:pattern.inputs=Inputs
|
misc.refinedstorage:pattern.inputs=Inputs
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ misc.refinedstorage:storage.full=%d%% vol
|
|||||||
misc.refinedstorage:wireless_grid.tooltip.0=X: %d
|
misc.refinedstorage:wireless_grid.tooltip.0=X: %d
|
||||||
misc.refinedstorage:wireless_grid.tooltip.1=Y: %d
|
misc.refinedstorage:wireless_grid.tooltip.1=Y: %d
|
||||||
misc.refinedstorage:wireless_grid.tooltip.2=Z: %d
|
misc.refinedstorage:wireless_grid.tooltip.2=Z: %d
|
||||||
misc.refinedstorage:wireless_grid.out_of_range=Controller buiten bereik.
|
misc.refinedstorage:wireless_grid.out_of_range=Er is geen Draadloze Zender binnen bereik.
|
||||||
misc.refinedstorage:wireless_grid.not_found=Controller niet gevonden.
|
misc.refinedstorage:wireless_grid.not_found=Controller niet gevonden.
|
||||||
|
|
||||||
misc.refinedstorage:pattern.inputs=Inputs
|
misc.refinedstorage:pattern.inputs=Inputs
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ misc.refinedstorage:storage.full=%d%% full
|
|||||||
misc.refinedstorage:wireless_grid.tooltip.0=X: %d
|
misc.refinedstorage:wireless_grid.tooltip.0=X: %d
|
||||||
misc.refinedstorage:wireless_grid.tooltip.1=Y: %d
|
misc.refinedstorage:wireless_grid.tooltip.1=Y: %d
|
||||||
misc.refinedstorage:wireless_grid.tooltip.2=Z: %d
|
misc.refinedstorage:wireless_grid.tooltip.2=Z: %d
|
||||||
misc.refinedstorage:wireless_grid.out_of_range=Controlador fora de alcance.
|
misc.refinedstorage:wireless_grid.out_of_range=Não há Transmissor Sem Fio na gama.
|
||||||
misc.refinedstorage:wireless_grid.not_found=Controlador não encontrado.
|
misc.refinedstorage:wireless_grid.not_found=Controlador não encontrado.
|
||||||
|
|
||||||
misc.refinedstorage:pattern.inputs=Entrada
|
misc.refinedstorage:pattern.inputs=Entrada
|
||||||
|
|||||||
Reference in New Issue
Block a user