Add another RS addons hook
This commit is contained in:
@@ -18,6 +18,7 @@ import net.minecraftforge.common.DimensionManager;
|
|||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public abstract class ItemNetworkItem extends ItemEnergyItem implements INetworkItemProvider {
|
public abstract class ItemNetworkItem extends ItemEnergyItem implements INetworkItemProvider {
|
||||||
private static final String NBT_CONTROLLER_X = "ControllerX";
|
private static final String NBT_CONTROLLER_X = "ControllerX";
|
||||||
@@ -36,24 +37,28 @@ public abstract class ItemNetworkItem extends ItemEnergyItem implements INetwork
|
|||||||
ItemStack stack = player.getHeldItem(hand);
|
ItemStack stack = player.getHeldItem(hand);
|
||||||
|
|
||||||
if (!world.isRemote) {
|
if (!world.isRemote) {
|
||||||
|
applyNetwork(stack, n -> n.getNetworkItemHandler().onOpen(player, hand), player::sendMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ActionResult.newResult(EnumActionResult.SUCCESS, stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void applyNetwork(ItemStack stack, Consumer<INetwork> networkConsumer, Consumer<TextComponentTranslation> errorConsumer) {
|
||||||
if (!isValid(stack)) {
|
if (!isValid(stack)) {
|
||||||
player.sendMessage(new TextComponentTranslation("misc.refinedstorage:network_item.not_found"));
|
errorConsumer.accept(new TextComponentTranslation("misc.refinedstorage:network_item.not_found"));
|
||||||
} else {
|
} else {
|
||||||
World networkWorld = DimensionManager.getWorld(getDimensionId(stack));
|
World networkWorld = DimensionManager.getWorld(getDimensionId(stack));
|
||||||
|
|
||||||
TileEntity network;
|
TileEntity network;
|
||||||
|
|
||||||
if (networkWorld != null && ((network = networkWorld.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack)))) instanceof INetwork)) {
|
if (networkWorld != null && ((network = networkWorld.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack)))) instanceof INetwork)) {
|
||||||
((INetwork) network).getNetworkItemHandler().onOpen(player, hand);
|
networkConsumer.accept((INetwork) network);
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(new TextComponentTranslation("misc.refinedstorage:network_item.not_found"));
|
errorConsumer.accept(new TextComponentTranslation("misc.refinedstorage:network_item.not_found"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ActionResult.newResult(EnumActionResult.SUCCESS, stack);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag) {
|
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag) {
|
||||||
super.addInformation(stack, world, tooltip, flag);
|
super.addInformation(stack, world, tooltip, flag);
|
||||||
|
|||||||
Reference in New Issue
Block a user