mirror of
https://github.com/GTNewHorizons/EnderIO.git
synced 2026-11-15 01:25:13 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f43936c29a | ||
|
|
c6471ed6b0 | ||
|
|
654b95da1a | ||
|
|
d70263f3af |
No files matched your search
@@ -27,3 +27,4 @@ whitelist.json
|
||||
*.iws
|
||||
src/main/resources/mixins.*.json
|
||||
*.bat
|
||||
layout.json
|
||||
+11
-11
@@ -2,21 +2,21 @@
|
||||
|
||||
dependencies {
|
||||
api('com.github.GTNewHorizons:EnderCore:0.4.6:dev') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:ForestryMC:4.10.1:dev')
|
||||
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.8-GTNH:dev')
|
||||
api("com.github.GTNewHorizons:GTNHLib:0.6.0:dev")
|
||||
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.39:dev')
|
||||
compileOnly('com.github.GTNewHorizons:ForestryMC:4.10.2:dev')
|
||||
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.29-GTNH:dev')
|
||||
api("com.github.GTNewHorizons:GTNHLib:0.6.10:dev")
|
||||
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.42:dev')
|
||||
api('curse.maven:cofh-lib-220333:2388748') // https://www.curseforge.com/minecraft/mc-mods/cofh-lib/files/2388748
|
||||
shadowImplementation('cglib:cglib-nodep:3.3.0')
|
||||
|
||||
compileOnly('com.github.GTNewHorizons:waila:1.8.2:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-516-GTNH:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-544-GTNH:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Baubles:1.0.4:dev') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.40:dev') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Railcraft:9.16.0:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:StorageDrawers:2.0.5-GTNH:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Chisel:2.16.0-GTNH:dev') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:OpenComputers:1.11.1-GTNH:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.134:dev') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Railcraft:9.16.3:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:StorageDrawers:2.1.0-GTNH:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Chisel:2.16.2-GTNH:dev') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:OpenComputers:1.11.8-GTNH:api') {transitive = false}
|
||||
compileOnly('curse.maven:minefactory-reloaded-66672:2366150') // https://www.curseforge.com/minecraft/mc-mods/minefactory-reloaded/files/2366150
|
||||
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
|
||||
compileOnly('curse.maven:ee3-65509:2305023') // https://www.curseforge.com/minecraft/mc-mods/ee3/files/2305023
|
||||
@@ -24,5 +24,5 @@ dependencies {
|
||||
compileOnly(rfg.deobf('curse.maven:mekanism-268560:2475797')) // https://www.curseforge.com/minecraft/mc-mods/mekanism/files/2475797
|
||||
compileOnly(rfg.deobf('maven.modrinth:immibis-microblocks:59.1.2')) // https://modrinth.com/mod/immibis-microblocks/version/59.1.2
|
||||
|
||||
compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-beta28:api') {transitive = false}
|
||||
compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-beta33:api') {transitive = false}
|
||||
}
|
||||
+1
-1
@@ -17,7 +17,7 @@ pluginManagement {
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.30'
|
||||
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.32'
|
||||
}
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ import crazypants.enderio.machine.power.BlockCapacitorBank;
|
||||
import crazypants.enderio.machine.power.CapBankRenderer2;
|
||||
import crazypants.enderio.machine.power.CapacitorBankRenderer;
|
||||
import crazypants.enderio.machine.ranged.RangeEntity;
|
||||
import crazypants.enderio.machine.ranged.RangeRenerer;
|
||||
import crazypants.enderio.machine.ranged.RangeRenderer;
|
||||
import crazypants.enderio.machine.reservoir.ReservoirRenderer;
|
||||
import crazypants.enderio.machine.reservoir.TileReservoir;
|
||||
import crazypants.enderio.machine.solar.BlockSolarPanel;
|
||||
@@ -419,7 +419,7 @@ public class ClientProxy extends CommonProxy {
|
||||
FMLCommonHandler.instance().bus().register(KeyTracker.instance);
|
||||
|
||||
RenderingRegistry.registerEntityRenderingHandler(SoundEntity.class, new SoundRenderer());
|
||||
RenderingRegistry.registerEntityRenderingHandler(RangeEntity.class, new RangeRenerer());
|
||||
RenderingRegistry.registerEntityRenderingHandler(RangeEntity.class, new RangeRenderer());
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(SoundDetector.instance);
|
||||
FMLCommonHandler.instance().bus().register(SoundDetector.instance);
|
||||
|
||||
@@ -186,7 +186,7 @@ import crazypants.util.EE3Util;
|
||||
modid = MODID,
|
||||
name = MOD_NAME,
|
||||
version = VERSION,
|
||||
dependencies = "required-after:CoFHLib@(1.0.3B3,);after:endercore;after:MineFactoryReloaded;after:Forestry;after:Waila@[1.5.8,);after:Thaumcraft;after:appliedenergistics2@[rv2-beta-8,);after:chisel;required-after:gtnhlib@[0.2.10,)",
|
||||
dependencies = "required-after:CoFHLib@(1.0.3B3,);required-after:endercore;after:MineFactoryReloaded;after:Forestry;after:Waila@[1.5.8,);after:Thaumcraft;after:appliedenergistics2@[rv2-beta-8,);after:chisel;required-after:gtnhlib@[0.2.10,)",
|
||||
guiFactory = "crazypants.enderio.config.ConfigFactoryEIO")
|
||||
public class EnderIO {
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package crazypants.enderio.machine.farm;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
@@ -10,9 +12,11 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.enderio.core.client.gui.button.IconButton;
|
||||
import com.enderio.core.client.gui.button.ToggleButton;
|
||||
import com.enderio.core.client.gui.widget.GuiToolTip;
|
||||
import com.enderio.core.client.render.ColorUtil;
|
||||
import com.enderio.core.client.render.RenderUtil;
|
||||
import com.enderio.core.common.vecmath.Vector4f;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.gui.IconEIO;
|
||||
@@ -20,11 +24,42 @@ import crazypants.enderio.machine.gui.GuiPoweredMachineBase;
|
||||
|
||||
public class GuiFarmStation extends GuiPoweredMachineBase<TileFarmStation> {
|
||||
|
||||
private static final int RANGE_ID = 8738924;
|
||||
private static final int LOCK_ID = 1234;
|
||||
|
||||
private final ToggleButton showRangeB;
|
||||
|
||||
public GuiFarmStation(InventoryPlayer par1InventoryPlayer, TileFarmStation machine) {
|
||||
super(machine, new FarmStationContainer(par1InventoryPlayer, machine), "farmStation");
|
||||
|
||||
int x = getXSize() - 5 - BUTTON_SIZE / 2;
|
||||
int y = getGuiTop() + 5;
|
||||
getRedstoneBtn().setPosition(x, y);
|
||||
|
||||
y += BUTTON_SIZE + 2;
|
||||
getConfigBtn().setPosition(x, y);
|
||||
|
||||
y += BUTTON_SIZE + 2;
|
||||
showRangeB = new ToggleButton(this, RANGE_ID, x, y, IconEIO.PLUS, IconEIO.MINUS);
|
||||
showRangeB.setSize(BUTTON_SIZE, BUTTON_SIZE);
|
||||
addToolTip(new GuiToolTip(showRangeB.getBounds(), "null") {
|
||||
|
||||
@Override
|
||||
public List<String> getToolTipText() {
|
||||
return Lists.newArrayList(
|
||||
EnderIO.lang.localize(
|
||||
showRangeB.isSelected() ? "gui.spawnGurad.hideRange" : "gui.spawnGurad.showRange"));
|
||||
}
|
||||
});
|
||||
|
||||
setYSize(ySize + 3);
|
||||
setXSize(xSize + 8);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getPowerU() {
|
||||
return 184;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -32,6 +67,9 @@ public class GuiFarmStation extends GuiPoweredMachineBase<TileFarmStation> {
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
|
||||
showRangeB.onGuiInit();
|
||||
showRangeB.setSelected(getTileEntity().isShowingRange());
|
||||
|
||||
int x = getGuiLeft() + 36;
|
||||
int y = getGuiTop() + 43;
|
||||
|
||||
@@ -94,7 +132,10 @@ public class GuiFarmStation extends GuiPoweredMachineBase<TileFarmStation> {
|
||||
protected void actionPerformed(GuiButton b) {
|
||||
if (b.id >= LOCK_ID + TileFarmStation.minSupSlot && b.id <= LOCK_ID + TileFarmStation.maxSupSlot) {
|
||||
getTileEntity().toggleLockedState(b.id - LOCK_ID);
|
||||
} else if (b.id == RANGE_ID) {
|
||||
getTileEntity().setShowRange(showRangeB.isSelected());
|
||||
}
|
||||
|
||||
super.actionPerformed(b);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,12 +15,17 @@ import net.minecraft.item.ItemShears;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.EnumSkyBlock;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import com.enderio.core.common.util.BlockCoord;
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.ModObject;
|
||||
import crazypants.enderio.config.Config;
|
||||
@@ -32,13 +37,52 @@ import crazypants.enderio.machine.SlotDefinition;
|
||||
import crazypants.enderio.machine.farm.farmers.FarmersCommune;
|
||||
import crazypants.enderio.machine.farm.farmers.IHarvestResult;
|
||||
import crazypants.enderio.machine.farm.farmers.RubberTreeFarmerIC2;
|
||||
import crazypants.enderio.machine.ranged.IRanged;
|
||||
import crazypants.enderio.machine.ranged.RangeEntity;
|
||||
import crazypants.enderio.network.PacketHandler;
|
||||
import crazypants.enderio.power.BasicCapacitor;
|
||||
import crazypants.enderio.tool.ArrayMappingTool;
|
||||
|
||||
public class TileFarmStation extends AbstractPoweredTaskEntity {
|
||||
public class TileFarmStation extends AbstractPoweredTaskEntity implements IRanged {
|
||||
|
||||
private static final int TICKS_PER_WORK = 20;
|
||||
private boolean showingRange;
|
||||
|
||||
@Override
|
||||
public World getWorld() {
|
||||
return worldObj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getBounds() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3d getRange() {
|
||||
return new Vector3d(getFarmSize(), 0, getFarmSize());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isShowingRange() {
|
||||
return showingRange;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void setShowRange(boolean showRange) {
|
||||
if (showingRange == showRange) {
|
||||
return;
|
||||
}
|
||||
showingRange = showRange;
|
||||
if (showingRange) {
|
||||
worldObj.spawnEntityInWorld(new RangeEntity(this));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor() {
|
||||
return 0x66FFAA00;
|
||||
}
|
||||
|
||||
public enum ToolType {
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.enderio.core.api.common.util.IProgressTile;
|
||||
import com.enderio.core.client.gui.button.IconButton;
|
||||
import com.enderio.core.client.gui.button.ToggleButton;
|
||||
import com.enderio.core.client.gui.widget.GuiToolTip;
|
||||
import com.enderio.core.client.render.RenderUtil;
|
||||
import com.enderio.core.common.util.BlockCoord;
|
||||
@@ -211,4 +212,12 @@ public abstract class GuiMachineBase<T extends AbstractMachineEntity> extends Gu
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected RedstoneModeButton getRedstoneBtn() {
|
||||
return redstoneButton;
|
||||
}
|
||||
|
||||
protected ToggleButton getConfigBtn() {
|
||||
return configB;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package crazypants.enderio.machine.killera;
|
||||
|
||||
import java.awt.Rectangle;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
@@ -8,9 +9,11 @@ import net.minecraft.entity.player.InventoryPlayer;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.enderio.core.client.gui.button.IconButton;
|
||||
import com.enderio.core.client.gui.button.ToggleButton;
|
||||
import com.enderio.core.client.gui.widget.GuiToolTip;
|
||||
import com.enderio.core.client.render.RenderUtil;
|
||||
import com.enderio.core.common.util.SoundUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.fluid.Fluids;
|
||||
@@ -23,6 +26,9 @@ import crazypants.enderio.xp.PacketGivePlayerXP;
|
||||
|
||||
public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
|
||||
|
||||
private static final int RANGE_ID = 8738924;
|
||||
private final ToggleButton showRangeB;
|
||||
|
||||
private static final int XP_ID = 3489;
|
||||
private static final int XP10_ID = 34892;
|
||||
|
||||
@@ -32,6 +38,18 @@ public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
|
||||
public GuiKillerJoe(InventoryPlayer inventory, final TileKillerJoe tileEntity) {
|
||||
super(tileEntity, new ContainerKillerJoe(inventory, tileEntity), "killerJoe");
|
||||
|
||||
showRangeB = new ToggleButton(this, RANGE_ID, 155, 24 + 18, IconEIO.PLUS, IconEIO.MINUS);
|
||||
showRangeB.setSize(BUTTON_SIZE, BUTTON_SIZE);
|
||||
addToolTip(new GuiToolTip(showRangeB.getBounds(), "null") {
|
||||
|
||||
@Override
|
||||
public List<String> getToolTipText() {
|
||||
return Lists.newArrayList(
|
||||
EnderIO.lang.localize(
|
||||
showRangeB.isSelected() ? "gui.spawnGurad.hideRange" : "gui.spawnGurad.showRange"));
|
||||
}
|
||||
});
|
||||
|
||||
addToolTip(new GuiToolTip(new Rectangle(18, 11, 15, 47), "") {
|
||||
|
||||
@Override
|
||||
@@ -46,11 +64,17 @@ public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
|
||||
}
|
||||
});
|
||||
|
||||
xpB = new IconButton(this, XP_ID, 128, 56, IconEIO.XP);
|
||||
xpB.setToolTip(EnderIO.lang.localize("killerJoe.giveXp.tooltip"));
|
||||
int size = 14;
|
||||
int x = guiLeft + 56 + (65 / 2);
|
||||
int y = guiTop + 62 + 6;
|
||||
|
||||
xp10B = new IconButton(this, XP10_ID, 148, 56, IconEIO.XP_PLUS);
|
||||
xpB = new IconButton(this, XP_ID, x - 16, y, IconEIO.XP);
|
||||
xpB.setToolTip(EnderIO.lang.localize("killerJoe.giveXp.tooltip"));
|
||||
xpB.setSize(size, size);
|
||||
|
||||
xp10B = new IconButton(this, XP10_ID, x + 2, y, IconEIO.XP_PLUS);
|
||||
xp10B.setToolTip(EnderIO.lang.localize("killerJoe.giveXp10.tooltip"));
|
||||
xp10B.setSize(size, size);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -58,6 +82,9 @@ public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
|
||||
super.initGui();
|
||||
xpB.onGuiInit();
|
||||
xp10B.onGuiInit();
|
||||
|
||||
showRangeB.onGuiInit();
|
||||
showRangeB.setSelected(getTileEntity().isShowingRange());
|
||||
((ContainerKillerJoe) inventorySlots).createGhostSlots(getGhostSlots());
|
||||
}
|
||||
|
||||
@@ -70,6 +97,8 @@ public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
|
||||
} else if (b.id == XP10_ID) {
|
||||
PacketHandler.INSTANCE.sendToServer(new PacketGivePlayerXP(getTileEntity(), 10));
|
||||
SoundUtil.playClientSoundFX("random.orb", getTileEntity());
|
||||
} else if (b.id == RANGE_ID) {
|
||||
getTileEntity().setShowRange(showRangeB.isSelected());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
@@ -39,6 +40,8 @@ import com.mojang.authlib.GameProfile;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.Event.Result;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.ModObject;
|
||||
import crazypants.enderio.config.Config;
|
||||
@@ -47,6 +50,8 @@ import crazypants.enderio.machine.FakePlayerEIO;
|
||||
import crazypants.enderio.machine.SlotDefinition;
|
||||
import crazypants.enderio.machine.generator.zombie.IHasNutrientTank;
|
||||
import crazypants.enderio.machine.generator.zombie.PacketNutrientTank;
|
||||
import crazypants.enderio.machine.ranged.IRanged;
|
||||
import crazypants.enderio.machine.ranged.RangeEntity;
|
||||
import crazypants.enderio.machine.wireless.WirelessChargedLocation;
|
||||
import crazypants.enderio.network.PacketHandler;
|
||||
import crazypants.enderio.tool.SmartTank;
|
||||
@@ -56,7 +61,46 @@ import crazypants.enderio.xp.PacketExperianceContainer;
|
||||
import crazypants.enderio.xp.XpUtil;
|
||||
|
||||
public class TileKillerJoe extends AbstractMachineEntity
|
||||
implements IFluidHandler, IEntitySelector, IHaveExperience, ITankAccess, IHasNutrientTank {
|
||||
implements IFluidHandler, IEntitySelector, IHaveExperience, ITankAccess, IHasNutrientTank, IRanged {
|
||||
|
||||
private boolean showingRange;
|
||||
|
||||
@Override
|
||||
public World getWorld() {
|
||||
return worldObj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getBounds() {
|
||||
return getKillBounds();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3d getRange() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean isShowingRange() {
|
||||
return showingRange;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void setShowRange(boolean showRange) {
|
||||
if (showingRange == showRange) {
|
||||
return;
|
||||
}
|
||||
showingRange = showRange;
|
||||
if (showingRange) {
|
||||
worldObj.spawnEntityInWorld(new RangeEntity(this));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor() {
|
||||
return 0x66FF0000;
|
||||
}
|
||||
|
||||
public static class ZombieCache {
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ public class GuiAttractor extends GuiPoweredMachineBase<TileAttractor> {
|
||||
|
||||
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
|
||||
|
||||
int range = (int) getTileEntity().getRange();
|
||||
int range = (int) getTileEntity().getRange().x;
|
||||
drawCenteredString(
|
||||
fontRendererObj,
|
||||
EnderIO.lang.localize("gui.spawnGurad.range") + " " + range,
|
||||
|
||||
@@ -61,8 +61,13 @@ public class TileAttractor extends AbstractPowerConsumerEntity implements IRange
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getRange() {
|
||||
return range;
|
||||
public AxisAlignedBB getBounds() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3d getRange() {
|
||||
return new Vector3d(range, range, range);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -71,6 +76,11 @@ public class TileAttractor extends AbstractPowerConsumerEntity implements IRange
|
||||
return showingRange;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor() {
|
||||
return 0x66FFFFFF;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void setShowRange(boolean showRange) {
|
||||
if (showingRange == showRange) {
|
||||
@@ -317,8 +327,7 @@ public class TileAttractor extends AbstractPowerConsumerEntity implements IRange
|
||||
ent.faceEntity(getTarget(), 10.0F, 20.0F);
|
||||
return true;
|
||||
} else if (ent instanceof EntitySilverfish) {
|
||||
PathEntity pathentity = worldObj
|
||||
.getPathEntityToEntity(ent, getTarget(), getRange(), true, false, false, true);
|
||||
PathEntity pathentity = worldObj.getPathEntityToEntity(ent, getTarget(), range, true, false, false, true);
|
||||
((EntityCreature) ent).setPathToEntity(pathentity);
|
||||
return true;
|
||||
} else if (ent instanceof EntityBlaze) {
|
||||
@@ -339,8 +348,7 @@ public class TileAttractor extends AbstractPowerConsumerEntity implements IRange
|
||||
return;
|
||||
}
|
||||
EntitySilverfish sf = (EntitySilverfish) ent;
|
||||
PathEntity pathentity = worldObj
|
||||
.getPathEntityToEntity(ent, getTarget(), getRange(), true, false, false, true);
|
||||
PathEntity pathentity = worldObj.getPathEntityToEntity(ent, getTarget(), range, true, false, false, true);
|
||||
sf.setPathToEntity(pathentity);
|
||||
} else if (ent instanceof EntityBlaze) {
|
||||
EntityBlaze mob = (EntityBlaze) ent;
|
||||
|
||||
@@ -58,7 +58,7 @@ public class GuiAversionObelisk extends GuiPoweredMachineBase<TileAversionObelis
|
||||
|
||||
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
|
||||
|
||||
int range = (int) getTileEntity().getRange();
|
||||
int range = (int) getTileEntity().getRange().x;
|
||||
drawCenteredString(
|
||||
fontRendererObj,
|
||||
EnderIO.lang.localize("gui.spawnGurad.range") + " " + range,
|
||||
|
||||
@@ -9,6 +9,7 @@ import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.enderio.core.client.render.BoundingBox;
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@@ -40,6 +41,11 @@ public class TileAversionObelisk extends AbstractPowerConsumerEntity implements
|
||||
return showingRange;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor() {
|
||||
return 0x66FFFFFF;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void setShowRange(boolean showRange) {
|
||||
if (showingRange == showRange) {
|
||||
@@ -64,8 +70,13 @@ public class TileAversionObelisk extends AbstractPowerConsumerEntity implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getRange() {
|
||||
return range;
|
||||
public AxisAlignedBB getBounds() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3d getRange() {
|
||||
return new Vector3d(range, range, range);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -28,7 +28,7 @@ public class GuiInhibitorObelisk extends GuiPoweredMachineBase<TileInhibitorObel
|
||||
|
||||
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
|
||||
|
||||
int range = (int) getTileEntity().getRange();
|
||||
int range = (int) getTileEntity().getRange().x;
|
||||
drawCenteredString(
|
||||
fontRendererObj,
|
||||
EnderIO.lang.localize("gui.spawnGurad.range") + " " + range,
|
||||
|
||||
+15
-2
@@ -1,8 +1,11 @@
|
||||
package crazypants.enderio.machine.obelisk.inhibitor;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
|
||||
import crazypants.enderio.ModObject;
|
||||
import crazypants.enderio.machine.AbstractPowerConsumerEntity;
|
||||
import crazypants.enderio.machine.SlotDefinition;
|
||||
@@ -42,8 +45,13 @@ public class TileInhibitorObelisk extends AbstractPowerConsumerEntity implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getRange() {
|
||||
return range;
|
||||
public AxisAlignedBB getBounds() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3d getRange() {
|
||||
return new Vector3d(range, range, range);
|
||||
}
|
||||
|
||||
public void setRange(float range) {
|
||||
@@ -56,6 +64,11 @@ public class TileInhibitorObelisk extends AbstractPowerConsumerEntity implements
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor() {
|
||||
return 0x66FFFFFF;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate() {
|
||||
super.validate();
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package crazypants.enderio.machine.ranged;
|
||||
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.enderio.core.common.util.BlockCoord;
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
|
||||
public interface IRanged {
|
||||
|
||||
@@ -10,7 +12,11 @@ public interface IRanged {
|
||||
|
||||
BlockCoord getLocation();
|
||||
|
||||
float getRange();
|
||||
AxisAlignedBB getBounds();
|
||||
|
||||
Vector3d getRange();
|
||||
|
||||
boolean isShowingRange();
|
||||
|
||||
int getColor();
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
import com.enderio.core.common.util.BlockCoord;
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@@ -13,16 +14,22 @@ public class RangeEntity extends Entity {
|
||||
|
||||
int totalLife = 20;
|
||||
int lifeSpan = totalLife;
|
||||
float range;
|
||||
private IRanged spawnGuard;
|
||||
private Vector3d lastRange;
|
||||
private AxisAlignedBB lastBounds;
|
||||
private final IRanged spawnGuard;
|
||||
private int color;
|
||||
private AxisAlignedBB rangeBounds;
|
||||
private Vector3d range;
|
||||
|
||||
public RangeEntity(IRanged sg) {
|
||||
super(sg.getWorld());
|
||||
spawnGuard = sg;
|
||||
BlockCoord bc = spawnGuard.getLocation();
|
||||
setPosition(bc.x + 0.5, bc.y + 0.5, bc.z + 0.5);
|
||||
setPosition(bc.x - 0.01, bc.y - 0.01, bc.z - 0.01);
|
||||
ignoreFrustumCheck = true;
|
||||
range = sg.getRange() + 0.5f;
|
||||
color = sg.getColor();
|
||||
lastRange = spawnGuard.getRange();
|
||||
lastBounds = spawnGuard.getBounds();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -41,7 +48,14 @@ public class RangeEntity extends Entity {
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getBoundingBox() {
|
||||
return null;
|
||||
return spawnGuard.getBounds() != null ? spawnGuard.getBounds()
|
||||
: AxisAlignedBB.getBoundingBox(
|
||||
posX - lastRange.x,
|
||||
posY - lastRange.y,
|
||||
posZ - lastRange.z,
|
||||
posX + lastRange.x + 1,
|
||||
posY + lastRange.y + 1,
|
||||
posZ + lastRange.z + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -49,6 +63,8 @@ public class RangeEntity extends Entity {
|
||||
super.onUpdate();
|
||||
lifeSpan--;
|
||||
BlockCoord bc = spawnGuard.getLocation();
|
||||
updateRange();
|
||||
|
||||
if (!(worldObj.getTileEntity(bc.x, bc.y, bc.z) instanceof IRanged)) {
|
||||
setDead();
|
||||
}
|
||||
@@ -62,4 +78,17 @@ public class RangeEntity extends Entity {
|
||||
|
||||
@Override
|
||||
protected void writeEntityToNBT(NBTTagCompound p_70014_1_) {}
|
||||
|
||||
private void updateRange() {
|
||||
if (lastRange != null && !lastRange.equals(spawnGuard.getRange())) {
|
||||
lastRange = spawnGuard.getRange();
|
||||
} else if (lastBounds != null && !lastBounds.equals(spawnGuard.getBounds())) {
|
||||
lastBounds = spawnGuard.getBounds();
|
||||
}
|
||||
}
|
||||
|
||||
public float[] getColor() {
|
||||
return new float[] { (float) (this.color >> 16 & 255) / 255.0F, (float) (this.color >> 8 & 255) / 255.0F,
|
||||
(float) (this.color & 255) / 255.0F, (float) (this.color >> 24 & 255) / 255.0F };
|
||||
}
|
||||
}
|
||||
+23
-12
@@ -3,6 +3,7 @@ package crazypants.enderio.machine.ranged;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.entity.RenderEntity;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@@ -10,17 +11,19 @@ import com.enderio.core.client.render.BoundingBox;
|
||||
import com.enderio.core.client.render.CubeRenderer;
|
||||
import com.enderio.core.client.render.IconUtil;
|
||||
import com.enderio.core.client.render.RenderUtil;
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class RangeRenerer extends RenderEntity {
|
||||
public class RangeRenderer extends RenderEntity {
|
||||
|
||||
@Override
|
||||
public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float p_76986_9_) {
|
||||
|
||||
RangeEntity se = ((RangeEntity) entity);
|
||||
AxisAlignedBB rangeBB = se.getBoundingBox();
|
||||
final Tessellator tessellator = Tessellator.instance;
|
||||
|
||||
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
|
||||
@@ -30,21 +33,29 @@ public class RangeRenerer extends RenderEntity {
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
GL11.glDepthMask(false);
|
||||
|
||||
float scale = 1 - (se.lifeSpan / (float) se.totalLife);
|
||||
scale = Math.min(scale, 1);
|
||||
scale *= se.range;
|
||||
Vector3d translate = new Vector3d(
|
||||
-(se.posX - rangeBB.minX + 0.01),
|
||||
-(se.posY - rangeBB.minY + 0.01),
|
||||
-(se.posZ - rangeBB.minZ + 0.01));
|
||||
|
||||
Vector3d scale = new Vector3d(
|
||||
1 - (se.lifeSpan / (float) se.totalLife),
|
||||
1 - (se.lifeSpan / (float) se.totalLife),
|
||||
rangeBB.maxZ - rangeBB.minZ);
|
||||
|
||||
scale.x = Math.min(scale.x, 1);
|
||||
scale.y = Math.min(scale.y, 1);
|
||||
|
||||
scale.x *= (rangeBB.maxX - rangeBB.minX);
|
||||
scale.y *= (rangeBB.maxY - rangeBB.minY);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) x, (float) y, (float) z);
|
||||
|
||||
GL11.glTranslatef(0.5f, 0.5f, 0.5f);
|
||||
GL11.glScalef(scale, scale, scale);
|
||||
GL11.glTranslatef(-0.5f, -0.5f, -0.5f);
|
||||
|
||||
GL11.glColor4f(1, 1, 1, 0.4f);
|
||||
|
||||
GL11.glColor4f(se.getColor()[0], se.getColor()[1], se.getColor()[2], se.getColor()[3]);
|
||||
RenderUtil.bindBlockTexture();
|
||||
tessellator.startDrawingQuads();
|
||||
GL11.glTranslated(x, y, z);
|
||||
GL11.glTranslated(translate.x, translate.y, translate.z);
|
||||
GL11.glScaled(scale.x, scale.y, scale.z);
|
||||
tessellator.setBrightness(15 << 20 | 15 << 4);
|
||||
CubeRenderer.get().render(BoundingBox.UNIT_CUBE, IconUtil.whiteTexture);
|
||||
tessellator.draw();
|
||||
@@ -2,6 +2,7 @@ package crazypants.enderio.machine.spawner;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Rectangle;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
@@ -10,22 +11,40 @@ import net.minecraft.entity.player.InventoryPlayer;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.enderio.core.client.gui.button.MultiIconButton;
|
||||
import com.enderio.core.client.gui.button.ToggleButton;
|
||||
import com.enderio.core.client.gui.widget.GuiToolTip;
|
||||
import com.enderio.core.client.render.ColorUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.gui.IconEIO;
|
||||
import crazypants.enderio.machine.gui.GuiPoweredMachineBase;
|
||||
import crazypants.enderio.network.PacketHandler;
|
||||
|
||||
public class GuiPoweredSpawner extends GuiPoweredMachineBase<TilePoweredSpawner> {
|
||||
|
||||
private static final int RANGE_ID = 8738924;
|
||||
private final MultiIconButton modeB;
|
||||
private final Rectangle progressTooltipRect;
|
||||
private final ToggleButton showRangeB;
|
||||
private boolean wasSpawnMode;
|
||||
private String header;
|
||||
|
||||
public GuiPoweredSpawner(InventoryPlayer par1InventoryPlayer, TilePoweredSpawner te) {
|
||||
super(te, new ContainerPoweredSpawner(par1InventoryPlayer, te), "poweredSpawner");
|
||||
|
||||
showRangeB = new ToggleButton(this, RANGE_ID, 155, 24 + 18, IconEIO.PLUS, IconEIO.MINUS);
|
||||
showRangeB.setSize(BUTTON_SIZE, BUTTON_SIZE);
|
||||
addToolTip(new GuiToolTip(showRangeB.getBounds(), "null") {
|
||||
|
||||
@Override
|
||||
public List<String> getToolTipText() {
|
||||
return Lists.newArrayList(
|
||||
EnderIO.lang.localize(
|
||||
showRangeB.isSelected() ? "gui.spawnGurad.hideRange" : "gui.spawnGurad.showRange"));
|
||||
}
|
||||
});
|
||||
|
||||
modeB = MultiIconButton.createRightArrowButton(this, 8888, 115, 10);
|
||||
modeB.setSize(10, 16);
|
||||
|
||||
@@ -38,6 +57,8 @@ public class GuiPoweredSpawner extends GuiPoweredMachineBase<TilePoweredSpawner>
|
||||
@Override
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
showRangeB.onGuiInit();
|
||||
showRangeB.setSelected(getTileEntity().isShowingRange());
|
||||
modeB.onGuiInit();
|
||||
((ContainerPoweredSpawner) inventorySlots).createGhostSlots(getGhostSlots());
|
||||
}
|
||||
@@ -47,9 +68,9 @@ public class GuiPoweredSpawner extends GuiPoweredMachineBase<TilePoweredSpawner>
|
||||
if (par1GuiButton == modeB) {
|
||||
getTileEntity().setSpawnMode(!getTileEntity().isSpawnMode());
|
||||
PacketHandler.INSTANCE.sendToServer(new PacketMode(getTileEntity()));
|
||||
} else {
|
||||
super.actionPerformed(par1GuiButton);
|
||||
}
|
||||
} else if (par1GuiButton.id == RANGE_ID) {
|
||||
getTileEntity().setShowRange(showRangeB.isSelected());
|
||||
} else super.actionPerformed(par1GuiButton);
|
||||
}
|
||||
|
||||
private void updateSpawnMode(boolean spawnMode) {
|
||||
|
||||
@@ -7,7 +7,12 @@ import net.minecraft.entity.EnumCreatureType;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.ModObject;
|
||||
import crazypants.enderio.config.Config;
|
||||
@@ -16,11 +21,13 @@ import crazypants.enderio.machine.IMachineRecipe;
|
||||
import crazypants.enderio.machine.IPoweredTask;
|
||||
import crazypants.enderio.machine.PoweredTask;
|
||||
import crazypants.enderio.machine.SlotDefinition;
|
||||
import crazypants.enderio.machine.ranged.IRanged;
|
||||
import crazypants.enderio.machine.ranged.RangeEntity;
|
||||
import crazypants.enderio.power.BasicCapacitor;
|
||||
import crazypants.enderio.power.Capacitors;
|
||||
import crazypants.enderio.power.ICapacitor;
|
||||
|
||||
public class TilePoweredSpawner extends AbstractPoweredTaskEntity {
|
||||
public class TilePoweredSpawner extends AbstractPoweredTaskEntity implements IRanged {
|
||||
|
||||
public static final int MIN_SPAWN_DELAY_BASE = Config.poweredSpawnerMinDelayTicks;
|
||||
public static final int MAX_SPAWN_DELAY_BASE = Config.poweredSpawnerMaxDelayTicks;
|
||||
@@ -94,6 +101,7 @@ public class TilePoweredSpawner extends AbstractPoweredTaskEntity {
|
||||
private boolean isSpawnMode = true;
|
||||
private int powerUsePerTick;
|
||||
private int remainingSpawnTries;
|
||||
private boolean showingRange;
|
||||
|
||||
public TilePoweredSpawner() {
|
||||
super(new SlotDefinition(1, 1, 1));
|
||||
@@ -178,6 +186,7 @@ public class TilePoweredSpawner extends AbstractPoweredTaskEntity {
|
||||
basePowerUse = POWER_PER_TICK_TEN;
|
||||
break;
|
||||
}
|
||||
|
||||
double multiplier = PoweredSpawnerConfig.getInstance().getCostMultiplierFor(getEntityName());
|
||||
setCapacitor(
|
||||
new BasicCapacitor(
|
||||
@@ -375,4 +384,41 @@ public class TilePoweredSpawner extends AbstractPoweredTaskEntity {
|
||||
public boolean hasEntityName() {
|
||||
return !NULL_ENTITY_NAME.equals(entityTypeName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public World getWorld() {
|
||||
return worldObj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getBounds() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3d getRange() {
|
||||
int range = Config.poweredSpawnerSpawnRange - 1;
|
||||
return new Vector3d(range, 1, range);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isShowingRange() {
|
||||
return showingRange;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void setShowRange(boolean showRange) {
|
||||
if (showingRange == showRange) {
|
||||
return;
|
||||
}
|
||||
showingRange = showRange;
|
||||
if (showingRange) {
|
||||
worldObj.spawnEntityInWorld(new RangeEntity(this));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor() {
|
||||
return 0x66FF0000;
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package crazypants.enderio.machine.vacuum;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Rectangle;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
@@ -18,6 +19,7 @@ import com.enderio.core.client.gui.widget.GuiToolTip;
|
||||
import com.enderio.core.client.render.ColorUtil;
|
||||
import com.enderio.core.client.render.EnderWidget;
|
||||
import com.enderio.core.common.util.BlockCoord;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.conduit.item.filter.ItemFilter;
|
||||
@@ -28,6 +30,7 @@ import crazypants.enderio.network.PacketHandler;
|
||||
|
||||
public class GuiVacuumChest extends GuiContainerBaseEIO {
|
||||
|
||||
private static final int RANGE_ID = 8738924;
|
||||
private static final int RANGE_LEFT = 145;
|
||||
private static final int RANGE_TOP = 86;
|
||||
private static final int RANGE_WIDTH = 16;
|
||||
@@ -43,6 +46,7 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
|
||||
|
||||
private final TileVacuumChest te;
|
||||
|
||||
private final ToggleButton showRangeB;
|
||||
private final GuiToolTip rangeTooltip;
|
||||
private final MultiIconButton rangeUpB;
|
||||
private final MultiIconButton rangeDownB;
|
||||
@@ -75,6 +79,18 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
|
||||
y = 104;
|
||||
rsB = new RedstoneModeButton(this, ID_REDSTONE, x, y, te, new BlockCoord(te));
|
||||
|
||||
showRangeB = new ToggleButton(this, RANGE_ID, x - 18, y, IconEIO.PLUS, IconEIO.MINUS);
|
||||
showRangeB.setSize(16, 16);
|
||||
addToolTip(new GuiToolTip(showRangeB.getBounds(), "null") {
|
||||
|
||||
@Override
|
||||
public List<String> getToolTipText() {
|
||||
return Lists.newArrayList(
|
||||
EnderIO.lang.localize(
|
||||
showRangeB.isSelected() ? "gui.spawnGurad.hideRange" : "gui.spawnGurad.showRange"));
|
||||
}
|
||||
});
|
||||
|
||||
x = FILTER_LEFT + TileVacuumChest.FILTER_SLOTS * 18 + 2;
|
||||
y = 86;
|
||||
whiteListB = new ToggleButton(this, ID_WHITELIST, x, y, IconEIO.FILTER_WHITELIST, IconEIO.FILTER_BLACKLIST);
|
||||
@@ -110,6 +126,8 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
|
||||
showRangeB.onGuiInit();
|
||||
showRangeB.setSelected(te.isShowingRange());
|
||||
rangeUpB.onGuiInit();
|
||||
rangeDownB.onGuiInit();
|
||||
rsB.onGuiInit();
|
||||
@@ -124,11 +142,13 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
|
||||
ItemFilter itemFilter;
|
||||
switch (guiButton.id) {
|
||||
case ID_RANGE_UP:
|
||||
setRange(te.getRange() + 1);
|
||||
setRange((int) te.getRange().x + 1);
|
||||
break;
|
||||
case ID_RANGE_DOWN:
|
||||
setRange(te.getRange() - 1);
|
||||
setRange((int) te.getRange().x - 1);
|
||||
break;
|
||||
case RANGE_ID:
|
||||
te.setShowRange(showRangeB.isSelected());
|
||||
case ID_WHITELIST:
|
||||
itemFilter = te.getItemFilter();
|
||||
if (itemFilter != null) {
|
||||
@@ -193,7 +213,7 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
|
||||
fr.drawString(headerInventory, sx + 7, sy + 111, headerColor);
|
||||
|
||||
IconEIO.map.render(EnderWidget.BUTTON_DOWN, sx + RANGE_LEFT, sy + RANGE_TOP, RANGE_WIDTH, 16, 0, true);
|
||||
String str = Integer.toString(te.getRange());
|
||||
String str = Integer.toString((int) te.getRange().x);
|
||||
int sw = fr.getStringWidth(str);
|
||||
fr.drawString(str, sx + RANGE_LEFT + RANGE_WIDTH - sw - 5, sy + RANGE_TOP + 5, ColorUtil.getRGB(Color.black));
|
||||
|
||||
|
||||
@@ -13,10 +13,14 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.enderio.core.client.render.BoundingBox;
|
||||
import com.enderio.core.common.util.ItemUtil;
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.ModObject;
|
||||
import crazypants.enderio.TileEntityEio;
|
||||
@@ -26,8 +30,11 @@ import crazypants.enderio.conduit.item.filter.ItemFilter;
|
||||
import crazypants.enderio.config.Config;
|
||||
import crazypants.enderio.machine.IRedstoneModeControlable;
|
||||
import crazypants.enderio.machine.RedstoneControlMode;
|
||||
import crazypants.enderio.machine.ranged.IRanged;
|
||||
import crazypants.enderio.machine.ranged.RangeEntity;
|
||||
|
||||
public class TileVacuumChest extends TileEntityEio implements IEntitySelector, IInventory, IRedstoneModeControlable {
|
||||
public class TileVacuumChest extends TileEntityEio
|
||||
implements IEntitySelector, IInventory, IRedstoneModeControlable, IRanged {
|
||||
|
||||
public static final int ITEM_ROWS = 3;
|
||||
public static final int ITEM_SLOTS = 9 * ITEM_ROWS;
|
||||
@@ -42,6 +49,8 @@ public class TileVacuumChest extends TileEntityEio implements IEntitySelector, I
|
||||
protected boolean redstoneCheckPassed;
|
||||
private boolean redstoneStateDirty = true;
|
||||
|
||||
private boolean showingRange;
|
||||
|
||||
@Override
|
||||
public void doUpdate() {
|
||||
if (redstoneStateDirty) {
|
||||
@@ -226,8 +235,41 @@ public class TileVacuumChest extends TileEntityEio implements IEntitySelector, I
|
||||
&& itemstack.getItemDamage() == 0;
|
||||
}
|
||||
|
||||
public int getRange() {
|
||||
return range;
|
||||
@Override
|
||||
public World getWorld() {
|
||||
return worldObj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getBounds() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3d getRange() {
|
||||
return new Vector3d(range, range, range);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean isShowingRange() {
|
||||
return showingRange;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor() {
|
||||
return 0x660000FF;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void setShowRange(boolean showRange) {
|
||||
if (showingRange == showRange) {
|
||||
return;
|
||||
}
|
||||
showingRange = showRange;
|
||||
if (showingRange) {
|
||||
worldObj.spawnEntityInWorld(new RangeEntity(this));
|
||||
}
|
||||
}
|
||||
|
||||
private int limitRange(int range) {
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Reference in new issue
Block a user