From 670d95eb962c9ed49802e99259d031969baed70b Mon Sep 17 00:00:00 2001 From: Me <135455255+IcarussOne@users.noreply.github.com> Date: Sun, 18 Aug 2024 18:34:37 -0500 Subject: [PATCH] Remove orbs After discussing about it, we felt like it would be better to have something else in their place. --- .../client/gui/GuiMeatyOrb.java | 98 ----- .../thaumicwonders/client/gui/GuiMeteorb.java | 103 ------ .../common/blocks/BlocksTW.java | 2 - .../common/blocks/devices/BlockMeatyOrb.java | 64 ---- .../common/blocks/devices/BlockMeteorb.java | 56 --- .../common/init/InitBlocks.java | 8 - .../common/init/InitRecipes.java | 40 +- .../common/network/PacketHandler.java | 6 - .../network/packets/PacketMeatyOrbAction.java | 73 ---- .../network/packets/PacketMeteorbAction.java | 99 ----- .../network/packets/PacketMeteorbFx.java | 68 ---- .../common/tiles/devices/TileMeatyOrb.java | 344 ------------------ .../common/tiles/devices/TileMeteorb.java | 297 --------------- .../thaumicwonders/proxy/ProxyGUI.java | 6 - .../assets/thaumicwonders/lang/en_us.lang | 20 - .../thaumicwonders/research/eldritch.json | 24 -- .../thaumicwonders/research/infusion.json | 23 -- .../textures/blocks/meaty_orb_e.png | Bin 367 -> 0 bytes .../textures/blocks/meaty_orb_n.png | Bin 306 -> 0 bytes .../textures/blocks/meaty_orb_s.png | Bin 351 -> 0 bytes .../textures/blocks/meaty_orb_tb.png | Bin 293 -> 0 bytes .../textures/blocks/meaty_orb_w.png | Bin 351 -> 0 bytes .../textures/blocks/meteorb_e.png | Bin 628 -> 0 bytes .../textures/blocks/meteorb_n.png | Bin 625 -> 0 bytes .../textures/blocks/meteorb_s.png | Bin 626 -> 0 bytes .../textures/blocks/meteorb_w.png | Bin 622 -> 0 bytes .../textures/gui/gui_meaty_orb.png | Bin 1723 -> 0 bytes .../textures/gui/gui_meaty_orb_background.png | Bin 1801 -> 0 bytes .../textures/gui/gui_meteorb.png | Bin 1343 -> 0 bytes .../textures/gui/gui_meteorb_background.png | Bin 3509 -> 0 bytes 30 files changed, 1 insertion(+), 1330 deletions(-) delete mode 100644 src/main/java/com/verdantartifice/thaumicwonders/client/gui/GuiMeatyOrb.java delete mode 100644 src/main/java/com/verdantartifice/thaumicwonders/client/gui/GuiMeteorb.java delete mode 100644 src/main/java/com/verdantartifice/thaumicwonders/common/blocks/devices/BlockMeatyOrb.java delete mode 100644 src/main/java/com/verdantartifice/thaumicwonders/common/blocks/devices/BlockMeteorb.java delete mode 100644 src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeatyOrbAction.java delete mode 100644 src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeteorbAction.java delete mode 100644 src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeteorbFx.java delete mode 100644 src/main/java/com/verdantartifice/thaumicwonders/common/tiles/devices/TileMeatyOrb.java delete mode 100644 src/main/java/com/verdantartifice/thaumicwonders/common/tiles/devices/TileMeteorb.java delete mode 100644 src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_e.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_n.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_s.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_tb.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_w.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_e.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_n.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_s.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_w.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/gui/gui_meaty_orb.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/gui/gui_meaty_orb_background.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/gui/gui_meteorb.png delete mode 100644 src/main/resources/assets/thaumicwonders/textures/gui/gui_meteorb_background.png diff --git a/src/main/java/com/verdantartifice/thaumicwonders/client/gui/GuiMeatyOrb.java b/src/main/java/com/verdantartifice/thaumicwonders/client/gui/GuiMeatyOrb.java deleted file mode 100644 index 024b020d..00000000 --- a/src/main/java/com/verdantartifice/thaumicwonders/client/gui/GuiMeatyOrb.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.verdantartifice.thaumicwonders.client.gui; - -import java.io.IOException; - -import org.lwjgl.opengl.GL11; - -import com.verdantartifice.thaumicwonders.ThaumicWonders; -import com.verdantartifice.thaumicwonders.common.network.PacketHandler; -import com.verdantartifice.thaumicwonders.common.network.packets.PacketMeatyOrbAction; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; - -public class GuiMeatyOrb extends GuiScreen { - private static final ResourceLocation BG_TEXTURE = new ResourceLocation(ThaumicWonders.MODID, "textures/gui/gui_meaty_orb_background.png"); - - protected BlockPos pos; - - public GuiMeatyOrb(BlockPos pos) { - super(); - this.pos = pos; - } - - @Override - public void initGui() { - if (this.mc == null) { - this.mc = Minecraft.getMinecraft(); - } - this.buttonList.clear(); - - int baseX = (this.width - 16) / 2; - int baseY = (this.height - 16) / 2; - this.buttonList.add(new GuiSelectorButton(0, baseX, baseY, 120, 120, 16, 16, I18n.format("thaumicwonders.gui.meaty_orb.0"))); - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) { - // Render background - GL11.glPushMatrix(); - GlStateManager.enableBlend(); - GL11.glEnable(GL11.GL_BLEND); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.renderEngine.bindTexture(BG_TEXTURE); - this.drawTexturedModalRect((this.width - 256) / 2, (this.height - 256) / 2, 0, 0, 256, 256); - GlStateManager.disableBlend(); - GL11.glPopMatrix(); - - // Draw everything else - super.drawScreen(mouseX, mouseY, partialTicks); - } - - @Override - protected void actionPerformed(GuiButton button) throws IOException { - PacketHandler.INSTANCE.sendToServer(new PacketMeatyOrbAction(this.pos)); - this.mc.player.closeScreen(); - } - - private class GuiSelectorButton extends GuiButton { - private final ResourceLocation TEXTURE = new ResourceLocation(ThaumicWonders.MODID, "textures/gui/gui_meaty_orb.png"); - private int texX; - private int texY; - - public GuiSelectorButton(int buttonId, int x, int y, int texX, int texY, int widthIn, int heightIn, String buttonText) { - super(buttonId, x, y, widthIn, heightIn, buttonText); - this.texX = texX; - this.texY = texY; - } - - @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) { - if (this.visible) { - this.hovered = ((mouseX >= this.x) && (mouseY >= this.y) && (mouseX < this.x + this.width) && (mouseY < this.y + this.height)); - GlStateManager.enableBlend(); - GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - mc.renderEngine.bindTexture(this.TEXTURE); - GL11.glPushMatrix(); - if (this.hovered) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } else { - GL11.glColor4f(0.8F, 0.8F, 0.8F, 1.0F); - } - this.drawTexturedModalRect(this.x, this.y, this.texX, this.texY, 16, 16); - GL11.glPopMatrix(); - if (this.hovered) { - this.drawString(mc.fontRenderer, this.displayString, this.x + 19, this.y + 4, 0xFFFFFF); - } - this.mouseDragged(mc, mouseX, mouseY); - } - } - } -} diff --git a/src/main/java/com/verdantartifice/thaumicwonders/client/gui/GuiMeteorb.java b/src/main/java/com/verdantartifice/thaumicwonders/client/gui/GuiMeteorb.java deleted file mode 100644 index 9ca6b72e..00000000 --- a/src/main/java/com/verdantartifice/thaumicwonders/client/gui/GuiMeteorb.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.verdantartifice.thaumicwonders.client.gui; - -import java.io.IOException; - -import org.lwjgl.opengl.GL11; - -import com.verdantartifice.thaumicwonders.ThaumicWonders; -import com.verdantartifice.thaumicwonders.common.network.PacketHandler; -import com.verdantartifice.thaumicwonders.common.network.packets.PacketMeteorbAction; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class GuiMeteorb extends GuiScreen { - private static final ResourceLocation BG_TEXTURE = new ResourceLocation(ThaumicWonders.MODID, "textures/gui/gui_meteorb_background.png"); - - protected BlockPos pos; - - public GuiMeteorb(BlockPos pos) { - super(); - this.pos = pos; - } - - @Override - public void initGui() { - if (this.mc == null) { - this.mc = Minecraft.getMinecraft(); - } - this.buttonList.clear(); - - int baseX = (this.width - 16) / 2; - int baseY = (this.height - 16) / 2; - this.buttonList.add(new GuiSelectorButton(2, baseX + 24, baseY, 144, 120, 16, 16, I18n.format("thaumicwonders.gui.meteorb.2"))); - this.buttonList.add(new GuiSelectorButton(1, baseX, baseY, 120, 120, 16, 16, I18n.format("thaumicwonders.gui.meteorb.1"))); - this.buttonList.add(new GuiSelectorButton(0, baseX - 24, baseY, 96, 120, 16, 16, I18n.format("thaumicwonders.gui.meteorb.0"))); - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) { - // Render background - GL11.glPushMatrix(); - GlStateManager.enableBlend(); - GL11.glEnable(GL11.GL_BLEND); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.renderEngine.bindTexture(BG_TEXTURE); - this.drawTexturedModalRect((this.width - 256) / 2, (this.height - 256) / 2, 0, 0, 256, 256); - GlStateManager.disableBlend(); - GL11.glPopMatrix(); - - // Draw everything else - super.drawScreen(mouseX, mouseY, partialTicks); - } - - @Override - protected void actionPerformed(GuiButton button) throws IOException { - PacketHandler.INSTANCE.sendToServer(new PacketMeteorbAction(button.id, this.pos)); - this.mc.player.closeScreen(); - } - - private class GuiSelectorButton extends GuiButton { - private final ResourceLocation TEXTURE = new ResourceLocation(ThaumicWonders.MODID, "textures/gui/gui_meteorb.png"); - private int texX; - private int texY; - - public GuiSelectorButton(int buttonId, int x, int y, int texX, int texY, int widthIn, int heightIn, String buttonText) { - super(buttonId, x, y, widthIn, heightIn, buttonText); - this.texX = texX; - this.texY = texY; - } - - @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) { - if (this.visible) { - this.hovered = ((mouseX >= this.x) && (mouseY >= this.y) && (mouseX < this.x + this.width) && (mouseY < this.y + this.height)); - GlStateManager.enableBlend(); - GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - mc.renderEngine.bindTexture(this.TEXTURE); - GL11.glPushMatrix(); - if (this.hovered) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } else { - GL11.glColor4f(0.8F, 0.8F, 0.8F, 1.0F); - } - this.drawTexturedModalRect(this.x, this.y, this.texX, this.texY, 16, 16); - GL11.glPopMatrix(); - if (this.hovered) { - this.drawString(mc.fontRenderer, this.displayString, this.x + 19, this.y + 4, 0xFFFFFF); - } - this.mouseDragged(mc, mouseX, mouseY); - } - } - } -} diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/BlocksTW.java b/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/BlocksTW.java index 493c7191..c532e4b1 100644 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/BlocksTW.java +++ b/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/BlocksTW.java @@ -20,9 +20,7 @@ public class BlocksTW { public static final Block CATALYZATION_CHAMBER = null; public static final Block HEXAMITE = null; public static final Block FLUX_CAPACITOR = null; - public static final Block METEORB = null; public static final Block ORE_DIVINER = null; - public static final Block MEATY_ORB = null; public static final Block VOID_BEACON = null; public static final Block FLUX_DISTILLER = null; public static final Block PRIMORDIAL_ACCELERATOR = null; diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/devices/BlockMeatyOrb.java b/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/devices/BlockMeatyOrb.java deleted file mode 100644 index 2d111f87..00000000 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/devices/BlockMeatyOrb.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.verdantartifice.thaumicwonders.common.blocks.devices; - -import com.verdantartifice.thaumicwonders.ThaumicWonders; -import com.verdantartifice.thaumicwonders.common.blocks.base.BlockDeviceTW; -import com.verdantartifice.thaumicwonders.common.misc.GuiIds; -import com.verdantartifice.thaumicwonders.common.tiles.devices.TileMeatyOrb; - -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import thaumcraft.common.blocks.IBlockFacingHorizontal; -import thaumcraft.common.lib.SoundsTC; - -public class BlockMeatyOrb extends BlockDeviceTW implements IBlockFacingHorizontal { - public BlockMeatyOrb() { - super(Material.SPONGE, TileMeatyOrb.class, "meaty_orb"); - this.setSoundType(SoundsTC.GORE); - this.setResistance(2.0F); - this.setHardness(0.25F); - } - - @Override - public SoundType getSoundType() { - return SoundsTC.GORE; - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) { - IBlockState bs = getDefaultState(); - bs = bs.withProperty(IBlockFacingHorizontal.FACING, placer.getHorizontalFacing().getOpposite()); - return bs; - } - - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - if (worldIn.isRemote) { - if (worldIn.provider.isSurfaceWorld()) { - playerIn.openGui(ThaumicWonders.INSTANCE, GuiIds.MEATY_ORB, worldIn, pos.getX(), pos.getY(), pos.getZ()); - } else { - playerIn.sendStatusMessage(new TextComponentString(TextFormatting.DARK_PURPLE + I18n.format("event.meaty_orb.offworld")), true); - } - } - return true; - } -} diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/devices/BlockMeteorb.java b/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/devices/BlockMeteorb.java deleted file mode 100644 index 5b2a1eec..00000000 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/blocks/devices/BlockMeteorb.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.verdantartifice.thaumicwonders.common.blocks.devices; - -import com.verdantartifice.thaumicwonders.ThaumicWonders; -import com.verdantartifice.thaumicwonders.common.blocks.base.BlockDeviceTW; -import com.verdantartifice.thaumicwonders.common.misc.GuiIds; -import com.verdantartifice.thaumicwonders.common.tiles.devices.TileMeteorb; - -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import thaumcraft.common.blocks.IBlockFacingHorizontal; - -public class BlockMeteorb extends BlockDeviceTW implements IBlockFacingHorizontal { - public BlockMeteorb() { - super(Material.ROCK, TileMeteorb.class, "meteorb"); - this.setSoundType(SoundType.STONE); - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) { - IBlockState bs = getDefaultState(); - bs = bs.withProperty(IBlockFacingHorizontal.FACING, placer.getHorizontalFacing().getOpposite()); - return bs; - } - - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - if (worldIn.isRemote) { - if (worldIn.provider.isSurfaceWorld()) { - playerIn.openGui(ThaumicWonders.INSTANCE, GuiIds.METEORB, worldIn, pos.getX(), pos.getY(), pos.getZ()); - } else { - playerIn.sendStatusMessage(new TextComponentString(TextFormatting.DARK_PURPLE + I18n.format("event.meteorb.offworld")), true); - } - } - return true; - } -} diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/init/InitBlocks.java b/src/main/java/com/verdantartifice/thaumicwonders/common/init/InitBlocks.java index 6c2212c7..d68a1d6c 100644 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/init/InitBlocks.java +++ b/src/main/java/com/verdantartifice/thaumicwonders/common/init/InitBlocks.java @@ -14,8 +14,6 @@ import com.verdantartifice.thaumicwonders.common.blocks.devices.BlockFluxDistiller; import com.verdantartifice.thaumicwonders.common.blocks.devices.BlockInspirationEngine; import com.verdantartifice.thaumicwonders.common.blocks.devices.BlockMadnessEngine; -import com.verdantartifice.thaumicwonders.common.blocks.devices.BlockMeatyOrb; -import com.verdantartifice.thaumicwonders.common.blocks.devices.BlockMeteorb; import com.verdantartifice.thaumicwonders.common.blocks.devices.BlockOreDiviner; import com.verdantartifice.thaumicwonders.common.blocks.devices.BlockPortalAnchor; import com.verdantartifice.thaumicwonders.common.blocks.devices.BlockPortalGenerator; @@ -45,8 +43,6 @@ import com.verdantartifice.thaumicwonders.common.tiles.devices.TileFluxDistiller; import com.verdantartifice.thaumicwonders.common.tiles.devices.TileInspirationEngine; import com.verdantartifice.thaumicwonders.common.tiles.devices.TileMadnessEngine; -import com.verdantartifice.thaumicwonders.common.tiles.devices.TileMeatyOrb; -import com.verdantartifice.thaumicwonders.common.tiles.devices.TileMeteorb; import com.verdantartifice.thaumicwonders.common.tiles.devices.TileOreDiviner; import com.verdantartifice.thaumicwonders.common.tiles.devices.TilePortalAnchor; import com.verdantartifice.thaumicwonders.common.tiles.devices.TilePortalGenerator; @@ -79,9 +75,7 @@ public static void initBlocks(IForgeRegistry forgeRegistry) { registerBlock(forgeRegistry, new BlockCatalyzationChamber()); registerBlock(forgeRegistry, new BlockHexamite()); registerBlock(forgeRegistry, new BlockFluxCapacitor(), ItemBlockFluxCapacitor.class); - registerBlock(forgeRegistry, new BlockMeteorb()); registerBlock(forgeRegistry, new BlockOreDiviner()); - registerBlock(forgeRegistry, new BlockMeatyOrb()); registerBlock(forgeRegistry, new BlockVoidBeacon()); registerBlock(forgeRegistry, new BlockFluxDistiller(), ItemBlockFluxDistiller.class); registerBlock(forgeRegistry, new BlockPrimordialAccelerator()); @@ -138,9 +132,7 @@ public static void initTileEntities() { GameRegistry.registerTileEntity(TilePortalAnchor.class, new ResourceLocation(ThaumicWonders.MODID, "TilePortalAnchor")); GameRegistry.registerTileEntity(TilePortalGenerator.class, new ResourceLocation(ThaumicWonders.MODID, "TilePortalGenerator")); GameRegistry.registerTileEntity(TileCatalyzationChamber.class, new ResourceLocation(ThaumicWonders.MODID, "TileCatalyzationChamber")); - GameRegistry.registerTileEntity(TileMeteorb.class, new ResourceLocation(ThaumicWonders.MODID, "TileMeteorb")); GameRegistry.registerTileEntity(TileOreDiviner.class, new ResourceLocation(ThaumicWonders.MODID, "TileOreDiviner")); - GameRegistry.registerTileEntity(TileMeatyOrb.class, new ResourceLocation(ThaumicWonders.MODID, "TileMeatyOrb")); GameRegistry.registerTileEntity(TileVoidBeacon.class, new ResourceLocation(ThaumicWonders.MODID, "TileVoidBeacon")); GameRegistry.registerTileEntity(TileFluxDistiller.class, new ResourceLocation(ThaumicWonders.MODID, "TileFluxDistiller")); GameRegistry.registerTileEntity(TilePrimordialAccelerator.class, new ResourceLocation(ThaumicWonders.MODID, "TilePrimordialAccelerator")); diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/init/InitRecipes.java b/src/main/java/com/verdantartifice/thaumicwonders/common/init/InitRecipes.java index a62fbc1e..5737ef31 100644 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/init/InitRecipes.java +++ b/src/main/java/com/verdantartifice/thaumicwonders/common/init/InitRecipes.java @@ -544,29 +544,7 @@ private static void initInfusionRecipes() { new AspectList().add(Aspect.METAL, 100).add(Aspect.FLUX, 100).add(Aspect.ALCHEMY, 25), new ItemStack(ItemsTW.ALCHEMIST_STONE), ingredients.toArray() - )); - - ThaumcraftApi.addInfusionCraftingRecipe(new ResourceLocation(ThaumicWonders.MODID, "meteorb"), new InfusionRecipe( - "TWOND_METEORB", - new ItemStack(BlocksTW.METEORB), - 6, - new AspectList().add(Aspect.AIR, 100).add(Aspect.WATER, 100).add(Aspect.ENERGY, 100).add(Aspect.ELDRITCH, 50), - new ItemStack(Items.ENDER_PEARL), - new Object[] { - new ItemStack(BlocksTC.stoneArcane), - new ItemStack(BlocksTC.slabArcaneStone), - new ItemStack(BlocksTC.tube), - new ItemStack(BlocksTC.stoneArcane), - new ItemStack(BlocksTC.slabArcaneStone), - new ItemStack(BlocksTC.tube), - new ItemStack(BlocksTC.stoneArcane), - new ItemStack(BlocksTC.slabArcaneStone), - new ItemStack(BlocksTC.tube), - new ItemStack(BlocksTC.stoneArcane), - new ItemStack(BlocksTC.slabArcaneStone), - new ItemStack(Blocks.STONE_BUTTON) - } - )); + )); List divinerIngredients = new ArrayList(); divinerIngredients.add("oreIron"); @@ -648,22 +626,6 @@ private static void initInfusionRecipes() { } )); - ThaumcraftApi.addInfusionCraftingRecipe(new ResourceLocation(ThaumicWonders.MODID, "meaty_orb"), new InfusionRecipe( - "TWOND_MEATY_ORB", - new ItemStack(BlocksTW.MEATY_ORB), - 8, - new AspectList().add(Aspect.WATER, 250).add(Aspect.LIFE, 250).add(Aspect.ELDRITCH, 250), - new ItemStack(BlocksTW.METEORB), - new Object[] { - Ingredient.fromItem(ItemsTC.primordialPearl), - new ItemStack(Items.BEEF), - new ItemStack(Items.PORKCHOP), - new ItemStack(Items.CHICKEN), - new ItemStack(Items.MUTTON), - new ItemStack(Items.RABBIT) - } - )); - ThaumcraftApi.addInfusionCraftingRecipe(new ResourceLocation(ThaumicWonders.MODID, "structure_diviner"), new InfusionRecipe( "TWOND_STRUCTURE_DIVINER", new ItemStack(ItemsTW.STRUCTURE_DIVINER), diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/network/PacketHandler.java b/src/main/java/com/verdantartifice/thaumicwonders/common/network/PacketHandler.java index 0adc6e9b..fbf09d63 100644 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/network/PacketHandler.java +++ b/src/main/java/com/verdantartifice/thaumicwonders/common/network/PacketHandler.java @@ -4,9 +4,6 @@ import com.verdantartifice.thaumicwonders.common.network.packets.PacketAvatarZapFx; import com.verdantartifice.thaumicwonders.common.network.packets.PacketDimensionalRipperFx; import com.verdantartifice.thaumicwonders.common.network.packets.PacketLocalizedMessage; -import com.verdantartifice.thaumicwonders.common.network.packets.PacketMeatyOrbAction; -import com.verdantartifice.thaumicwonders.common.network.packets.PacketMeteorbAction; -import com.verdantartifice.thaumicwonders.common.network.packets.PacketMeteorbFx; import com.verdantartifice.thaumicwonders.common.network.packets.PacketOreDivinerSearch; import com.verdantartifice.thaumicwonders.common.network.packets.PacketOreDivinerStop; import com.verdantartifice.thaumicwonders.common.network.packets.PacketStructureDivinerAction; @@ -32,12 +29,9 @@ public static void registerMessages() { INSTANCE.registerMessage(PacketTileToServer.Handler.class, PacketTileToServer.class, nextId(), Side.SERVER); INSTANCE.registerMessage(PacketTileToClient.Handler.class, PacketTileToClient.class, nextId(), Side.CLIENT); INSTANCE.registerMessage(PacketLocalizedMessage.Handler.class, PacketLocalizedMessage.class, nextId(), Side.CLIENT); - INSTANCE.registerMessage(PacketMeteorbAction.Handler.class, PacketMeteorbAction.class, nextId(), Side.SERVER); INSTANCE.registerMessage(PacketOreDivinerSearch.Handler.class, PacketOreDivinerSearch.class, nextId(), Side.CLIENT); INSTANCE.registerMessage(PacketOreDivinerStop.Handler.class, PacketOreDivinerStop.class, nextId(), Side.CLIENT); INSTANCE.registerMessage(PacketDimensionalRipperFx.Handler.class, PacketDimensionalRipperFx.class, nextId(), Side.CLIENT); - INSTANCE.registerMessage(PacketMeteorbFx.Handler.class, PacketMeteorbFx.class, nextId(), Side.CLIENT); - INSTANCE.registerMessage(PacketMeatyOrbAction.Handler.class, PacketMeatyOrbAction.class, nextId(), Side.SERVER); INSTANCE.registerMessage(PacketStructureDivinerAction.Handler.class, PacketStructureDivinerAction.class, nextId(), Side.SERVER); INSTANCE.registerMessage(PacketAvatarZapFx.Handler.class, PacketAvatarZapFx.class, nextId(), Side.CLIENT); } diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeatyOrbAction.java b/src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeatyOrbAction.java deleted file mode 100644 index 4d6c79a2..00000000 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeatyOrbAction.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.verdantartifice.thaumicwonders.common.network.packets; - -import com.verdantartifice.thaumicwonders.common.network.PacketHandler; -import com.verdantartifice.thaumicwonders.common.tiles.devices.TileMeatyOrb; - -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.network.NetworkRegistry; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aura.AuraHelper; - -public class PacketMeatyOrbAction implements IMessage { - private BlockPos tilePos; - - public PacketMeatyOrbAction() { - this.tilePos = null; - } - - public PacketMeatyOrbAction(BlockPos tilePos) { - this.tilePos = tilePos; - } - - @Override - public void fromBytes(ByteBuf buf) { - this.tilePos = BlockPos.fromLong(buf.readLong()); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeLong(this.tilePos.toLong()); - } - - public static class Handler implements IMessageHandler { - @Override - public IMessage onMessage(PacketMeatyOrbAction message, MessageContext ctx) { - FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); - return null; - } - - private void handle(PacketMeatyOrbAction message, MessageContext ctx) { - EntityPlayerMP entityPlayer = ctx.getServerHandler().player; - World world = entityPlayer.getEntityWorld(); - TileEntity tileEntity = world.getTileEntity(message.tilePos); - if (tileEntity != null && tileEntity instanceof TileMeatyOrb) { - TileMeatyOrb tile = (TileMeatyOrb)tileEntity; - if ( tile.doesContainerContainAmount(Aspect.WATER, TileMeatyOrb.MIN_FUEL) && - tile.doesContainerContainAmount(Aspect.LIFE, TileMeatyOrb.MIN_FUEL) && - tile.doesContainerContainAmount(Aspect.ELDRITCH, TileMeatyOrb.MIN_FUEL) ) { - tile.takeFromContainer(Aspect.WATER, TileMeatyOrb.MIN_FUEL); - tile.takeFromContainer(Aspect.LIFE, TileMeatyOrb.MIN_FUEL); - tile.takeFromContainer(Aspect.ELDRITCH, TileMeatyOrb.MIN_FUEL); - AuraHelper.polluteAura(world, message.tilePos, 10.0F, true); - tile.setActive(true); - PacketHandler.INSTANCE.sendToAllAround( - new PacketLocalizedMessage("event.meaty_orb.used"), - new NetworkRegistry.TargetPoint(world.provider.getDimension(), message.tilePos.getX(), message.tilePos.getY(), message.tilePos.getZ(), 32.0D)); - PacketHandler.INSTANCE.sendToAllAround( - new PacketMeteorbFx(message.tilePos, Aspect.ELDRITCH.getColor()), - new NetworkRegistry.TargetPoint(world.provider.getDimension(), message.tilePos.getX(), message.tilePos.getY(), message.tilePos.getZ(), 32.0D)); - } else { - PacketHandler.INSTANCE.sendTo(new PacketLocalizedMessage("event.meaty_orb.unfueled"), entityPlayer); - } - } - } - } -} diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeteorbAction.java b/src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeteorbAction.java deleted file mode 100644 index d01d8580..00000000 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeteorbAction.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.verdantartifice.thaumicwonders.common.network.packets; - -import com.verdantartifice.thaumicwonders.common.network.PacketHandler; -import com.verdantartifice.thaumicwonders.common.tiles.devices.TileMeteorb; - -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.storage.WorldInfo; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.network.NetworkRegistry; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; -import thaumcraft.api.aspects.Aspect; - -public class PacketMeteorbAction implements IMessage { - private int targetWeather; - private BlockPos tilePos; - - public PacketMeteorbAction() { - this.targetWeather = -1; - this.tilePos = null; - } - - public PacketMeteorbAction(int targetWeather, BlockPos tilePos) { - this.targetWeather = targetWeather; - this.tilePos = tilePos; - } - - @Override - public void fromBytes(ByteBuf buf) { - this.targetWeather = buf.readInt(); - this.tilePos = BlockPos.fromLong(buf.readLong()); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(this.targetWeather); - buf.writeLong(this.tilePos.toLong()); - } - - public static class Handler implements IMessageHandler { - @Override - public IMessage onMessage(PacketMeteorbAction message, MessageContext ctx) { - FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); - return null; - } - - private void handle(PacketMeteorbAction message, MessageContext ctx) { - EntityPlayerMP entityPlayer = ctx.getServerHandler().player; - World world = entityPlayer.getEntityWorld(); - WorldInfo worldinfo = world.getWorldInfo(); - TileEntity tileEntity = world.getTileEntity(message.tilePos); - if (tileEntity != null && tileEntity instanceof TileMeteorb) { - TileMeteorb tile = (TileMeteorb)tileEntity; - int duration = (300 + world.rand.nextInt(600)) * 20; - if (message.targetWeather == 0 && tile.doesContainerContainAmount(Aspect.AIR, TileMeteorb.MIN_FUEL)) { - tile.takeFromContainer(Aspect.AIR, TileMeteorb.MIN_FUEL); - worldinfo.setCleanWeatherTime(duration); - worldinfo.setRainTime(0); - worldinfo.setThunderTime(0); - worldinfo.setRaining(false); - worldinfo.setThundering(false); - PacketHandler.INSTANCE.sendToDimension(new PacketLocalizedMessage("event.meteorb.used"), world.provider.getDimension()); - PacketHandler.INSTANCE.sendToAllAround( - new PacketMeteorbFx(message.tilePos, Aspect.AIR.getColor()), - new NetworkRegistry.TargetPoint(world.provider.getDimension(), message.tilePos.getX(), message.tilePos.getY(), message.tilePos.getZ(), 32.0D)); - } else if (message.targetWeather == 1 && tile.doesContainerContainAmount(Aspect.WATER, TileMeteorb.MIN_FUEL)) { - tile.takeFromContainer(Aspect.WATER, TileMeteorb.MIN_FUEL); - worldinfo.setCleanWeatherTime(0); - worldinfo.setRainTime(duration); - worldinfo.setThunderTime(duration); - worldinfo.setRaining(true); - worldinfo.setThundering(false); - PacketHandler.INSTANCE.sendToDimension(new PacketLocalizedMessage("event.meteorb.used"), world.provider.getDimension()); - PacketHandler.INSTANCE.sendToAllAround( - new PacketMeteorbFx(message.tilePos, Aspect.WATER.getColor()), - new NetworkRegistry.TargetPoint(world.provider.getDimension(), message.tilePos.getX(), message.tilePos.getY(), message.tilePos.getZ(), 32.0D)); - } else if (message.targetWeather == 2 && tile.doesContainerContainAmount(Aspect.ENERGY, TileMeteorb.MIN_FUEL)) { - tile.takeFromContainer(Aspect.ENERGY, TileMeteorb.MIN_FUEL); - worldinfo.setCleanWeatherTime(0); - worldinfo.setRainTime(duration); - worldinfo.setThunderTime(duration); - worldinfo.setRaining(true); - worldinfo.setThundering(true); - PacketHandler.INSTANCE.sendToDimension(new PacketLocalizedMessage("event.meteorb.used"), world.provider.getDimension()); - PacketHandler.INSTANCE.sendToAllAround( - new PacketMeteorbFx(message.tilePos, Aspect.ENERGY.getColor()), - new NetworkRegistry.TargetPoint(world.provider.getDimension(), message.tilePos.getX(), message.tilePos.getY(), message.tilePos.getZ(), 32.0D)); - } else { - PacketHandler.INSTANCE.sendTo(new PacketLocalizedMessage("event.meteorb.unfueled"), entityPlayer); - } - } - } - } -} diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeteorbFx.java b/src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeteorbFx.java deleted file mode 100644 index 96d6bc58..00000000 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/network/packets/PacketMeteorbFx.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.verdantartifice.thaumicwonders.common.network.packets; - -import java.awt.Color; - -import io.netty.buffer.ByteBuf; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.client.FMLClientHandler; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import thaumcraft.client.fx.FXDispatcher; - -public class PacketMeteorbFx implements IMessage { - protected BlockPos source; - protected int color; - - public PacketMeteorbFx() { - this.source = null; - this.color = 0; - } - - public PacketMeteorbFx(BlockPos source, int color) { - this.source = source; - this.color = color; - } - - @Override - public void fromBytes(ByteBuf buf) { - this.source = BlockPos.fromLong(buf.readLong()); - this.color = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeLong(this.source.toLong()); - buf.writeInt(this.color); - } - - public static class Handler implements IMessageHandler { - @Override - public IMessage onMessage(PacketMeteorbFx message, MessageContext ctx) { - FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); - return null; - } - - @SideOnly(Side.CLIENT) - private void handle(PacketMeteorbFx message, MessageContext ctx) { - World world = FMLClientHandler.instance().getClient().world; - BlockPos targetPos = new BlockPos(message.source.getX(), world.getActualHeight(), message.source.getZ()); - Color color = new Color(message.color); - float r = color.getRed() / 255.0F; - float g = color.getGreen() / 255.0F; - float b = color.getBlue() / 255.0F; - FXDispatcher.INSTANCE.arcBolt( - message.source.getX() + 0.5D, - message.source.getY() + 0.5D, - message.source.getZ() + 0.5D, - targetPos.getX() + 0.5D, - targetPos.getY() - 0.5D, - targetPos.getZ() + 0.5D, - r, g, b, 0.6F); - } - } -} diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/tiles/devices/TileMeatyOrb.java b/src/main/java/com/verdantartifice/thaumicwonders/common/tiles/devices/TileMeatyOrb.java deleted file mode 100644 index 21c5e9c5..00000000 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/tiles/devices/TileMeatyOrb.java +++ /dev/null @@ -1,344 +0,0 @@ -package com.verdantartifice.thaumicwonders.common.tiles.devices; - -import java.util.ArrayList; -import java.util.List; - -import com.verdantartifice.thaumicwonders.ThaumicWonders; -import com.verdantartifice.thaumicwonders.common.tiles.base.TileTW; - -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import thaumcraft.api.ThaumcraftApiHelper; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.AspectList; -import thaumcraft.api.aspects.IAspectContainer; -import thaumcraft.api.aspects.IEssentiaTransport; -import thaumcraft.api.aura.AuraHelper; -import thaumcraft.common.blocks.IBlockFacingHorizontal; -import thaumcraft.common.lib.utils.RandomItemChooser; - -public class TileMeatyOrb extends TileTW implements IAspectContainer, IEssentiaTransport, ITickable { - private static final RandomItemChooser RIC = new RandomItemChooser(); - private static final int DURATION_TICKS = 300; - private static final int CAPACITY = 250; - public static final int MIN_FUEL = 250; - - protected static class MeatEntry implements RandomItemChooser.Item { - public ItemStack itemStack; - public int weight; - - public MeatEntry(ItemStack itemStack, int weight) { - this.itemStack = itemStack; - this.weight = weight; - } - - @Override - public double getWeight() { - return this.weight; - } - } - - protected static List meats = new ArrayList(); - - static { - meats.add(new MeatEntry(new ItemStack(Items.BEEF, 1, 0), 30)); - meats.add(new MeatEntry(new ItemStack(Items.PORKCHOP, 1, 0), 25)); - meats.add(new MeatEntry(new ItemStack(Items.CHICKEN, 1, 0), 20)); - meats.add(new MeatEntry(new ItemStack(Items.MUTTON, 1, 0), 15)); - meats.add(new MeatEntry(new ItemStack(Items.RABBIT, 1, 0), 10)); - } - - protected int lifeEssentia = 0; - protected int waterEssentia = 0; - protected int eldritchEssentia = 0; - protected int tickCounter = 0; - protected int activeCounter = 0; - - @Override - protected void readFromTileNBT(NBTTagCompound compound) { - this.lifeEssentia = compound.getShort("lifeEssentia"); - this.waterEssentia = compound.getShort("waterEssentia"); - this.eldritchEssentia = compound.getShort("eldritchEssentia"); - } - - @Override - protected NBTTagCompound writeToTileNBT(NBTTagCompound compound) { - compound.setShort("lifeEssentia", (short)this.lifeEssentia); - compound.setShort("waterEssentia", (short)this.waterEssentia); - compound.setShort("eldritchEssentia", (short)this.eldritchEssentia); - return compound; - } - - public void setActive(boolean active) { - this.activeCounter = (active ? DURATION_TICKS : 0); - } - - @Override - public void update() { - if (!this.world.isRemote && (++this.tickCounter % 5 == 0)) { - this.fill(); - } - if (!this.world.isRemote && this.activeCounter > 0) { - MeatEntry entry = (MeatEntry)RIC.chooseOnWeight(meats); - if (entry != null) { - double x = this.pos.getX() + 0.5D + (32.0D * (this.world.rand.nextDouble() - this.world.rand.nextDouble())); - double z = this.pos.getZ() + 0.5D + (32.0D * (this.world.rand.nextDouble() - this.world.rand.nextDouble())); - this.world.spawnEntity(new EntityItem(this.world, x, this.world.getActualHeight(), z, entry.itemStack.copy())); - } - this.activeCounter--; - } - } - - protected void fill() { - for (EnumFacing face : EnumFacing.HORIZONTALS) { - if (!this.canInputFrom(face) || this.getEssentiaAmount(face) >= CAPACITY) { - continue; - } - TileEntity te = ThaumcraftApiHelper.getConnectableTile(this.world, this.pos, face); - if (te != null && te instanceof IEssentiaTransport) { - IEssentiaTransport otherTile = (IEssentiaTransport)te; - if (!otherTile.canOutputTo(face.getOpposite())) { - continue; - } - if ( otherTile.getEssentiaType(face.getOpposite()) == this.getEssentiaType(face) && - otherTile.getEssentiaAmount(face.getOpposite()) > 0 && - this.getSuctionAmount(face) > otherTile.getSuctionAmount(face.getOpposite()) && - this.getSuctionAmount(face) >= otherTile.getMinimumSuction() ) { - int taken = otherTile.takeEssentia(this.getEssentiaType(face), 1, face.getOpposite()); - int leftover = this.addToContainer(this.getEssentiaType(face), taken); - if (leftover > 0) { - ThaumicWonders.LOGGER.info("Meaty Orb spilling {} essentia on fill", leftover); - AuraHelper.polluteAura(this.world, this.pos, leftover, true); - } - this.syncTile(false); - this.markDirty(); - } - } - } - } - - /** - * Get the relative facing for the given absolute facing. The Meaty Orb's relative north is its control - * panel, west is life input, east is water input, south is eldritch input. - * @param absFace facing relative to world axes - * @return facing relative to orb faces - */ - public EnumFacing getRelativeFacing(EnumFacing absFace) { - if (this.getBlockType() instanceof IBlockFacingHorizontal && absFace != EnumFacing.UP && absFace != EnumFacing.DOWN) { - EnumFacing blockFacing = this.world.getBlockState(this.pos).getValue(IBlockFacingHorizontal.FACING); - int rotations = 0; - EnumFacing relativeFacing = absFace; - while (blockFacing != EnumFacing.NORTH) { - blockFacing = blockFacing.rotateY(); - rotations++; - } - for (int index = 0; index < rotations; index++) { - relativeFacing = relativeFacing.rotateY(); - } - return relativeFacing; - } else { - return absFace; - } - } - - @Override - public int addEssentia(Aspect aspect, int amt, EnumFacing face) { - if (this.canInputFrom(face) && aspect == this.getEssentiaType(face)) { - return (amt - this.addToContainer(aspect, amt)); - } else { - return 0; - } - } - - @Override - public boolean canInputFrom(EnumFacing face) { - EnumFacing relFace = this.getRelativeFacing(face); - return (relFace == EnumFacing.WEST || relFace == EnumFacing.EAST || relFace == EnumFacing.SOUTH); - } - - @Override - public boolean canOutputTo(EnumFacing face) { - return false; - } - - @Override - public int getEssentiaAmount(EnumFacing face) { - EnumFacing relFace = this.getRelativeFacing(face); - if (relFace == EnumFacing.WEST) { - return this.lifeEssentia; - } else if (relFace == EnumFacing.EAST) { - return this.waterEssentia; - } else if (relFace == EnumFacing.SOUTH) { - return this.eldritchEssentia; - } else { - return 0; - } - } - - @Override - public Aspect getEssentiaType(EnumFacing face) { - EnumFacing relFace = this.getRelativeFacing(face); - if (relFace == EnumFacing.WEST) { - return Aspect.LIFE; - } else if (relFace == EnumFacing.EAST) { - return Aspect.WATER; - } else if (relFace == EnumFacing.SOUTH) { - return Aspect.ELDRITCH; - } else { - return null; - } - } - - @Override - public int getMinimumSuction() { - // Can't output, so no need for minimum suction - return 0; - } - - @Override - public int getSuctionAmount(EnumFacing face) { - return (this.getEssentiaAmount(face) >= CAPACITY) ? 0 : 128; - } - - @Override - public Aspect getSuctionType(EnumFacing face) { - return this.getEssentiaType(face); - } - - @Override - public boolean isConnectable(EnumFacing face) { - return this.canInputFrom(face); - } - - @Override - public void setSuction(Aspect aspect, int amt) { - // Do nothing - } - - @Override - public int takeEssentia(Aspect aspect, int amt, EnumFacing face) { - // Can't output - return 0; - } - - @Override - public int addToContainer(Aspect aspect, int toAdd) { - int retVal = 0; - if (toAdd == 0) { - return 0; - } else if (this.lifeEssentia < CAPACITY && aspect == Aspect.LIFE) { - // Add as much life as possible and return the remainder - int added = Math.min(toAdd, CAPACITY - this.lifeEssentia); - this.lifeEssentia += added; - retVal = (toAdd - added); - } else if (this.waterEssentia < CAPACITY && aspect == Aspect.WATER) { - // Add as much water as possible and return the remainder - int added = Math.min(toAdd, CAPACITY - this.waterEssentia); - this.waterEssentia += added; - retVal = (toAdd - added); - } else if (this.eldritchEssentia < CAPACITY && aspect == Aspect.ELDRITCH) { - // Add as much eldritch as possible and return the remainder - int added = Math.min(toAdd, CAPACITY - this.eldritchEssentia); - this.eldritchEssentia += added; - retVal = (toAdd - added); - } else { - retVal = toAdd; - } - - this.syncTile(false); - this.markDirty(); - return retVal; - } - - @Override - public int containerContains(Aspect aspect) { - if (aspect == Aspect.LIFE) { - return this.lifeEssentia; - } else if (aspect == Aspect.WATER) { - return this.waterEssentia; - } else if (aspect == Aspect.ELDRITCH) { - return this.eldritchEssentia; - } else { - return 0; - } - } - - @Override - public boolean doesContainerAccept(Aspect aspect) { - return (aspect == Aspect.LIFE || aspect == Aspect.WATER || aspect == Aspect.ELDRITCH); - } - - @Override - public boolean doesContainerContain(AspectList aspectList) { - boolean satisfied = true; - for (Aspect aspect : aspectList.getAspects()) { - satisfied = satisfied && this.doesContainerContainAmount(aspect, aspectList.getAmount(aspect)); - } - return satisfied; - } - - @Override - public boolean doesContainerContainAmount(Aspect aspect, int amt) { - return (aspect == Aspect.LIFE && this.lifeEssentia >= amt) || - (aspect == Aspect.WATER && this.waterEssentia >= amt) || - (aspect == Aspect.ELDRITCH && this.eldritchEssentia >= amt); - } - - @Override - public AspectList getAspects() { - AspectList list = new AspectList(); - if (this.lifeEssentia > 0) { - list.add(Aspect.LIFE, this.lifeEssentia); - } - if (this.waterEssentia > 0) { - list.add(Aspect.WATER, this.waterEssentia); - } - if (this.eldritchEssentia > 0) { - list.add(Aspect.ELDRITCH, this.eldritchEssentia); - } - return list; - } - - @Override - public void setAspects(AspectList aspects) { - if (aspects != null && aspects.size() > 0) { - this.lifeEssentia = aspects.getAmount(Aspect.LIFE); - this.waterEssentia = aspects.getAmount(Aspect.WATER); - this.eldritchEssentia = aspects.getAmount(Aspect.ELDRITCH); - } - } - - @Override - public boolean takeFromContainer(AspectList aspectList) { - if (!this.doesContainerContain(aspectList)) { - return false; - } else { - boolean satisfied = true; - for (Aspect aspect : aspectList.getAspects()) { - satisfied = satisfied && this.takeFromContainer(aspect, aspectList.getAmount(aspect)); - } - return satisfied; - } - } - - @Override - public boolean takeFromContainer(Aspect aspect, int amt) { - if (aspect == Aspect.LIFE && this.lifeEssentia >= amt) { - this.lifeEssentia -= amt; - } else if (aspect == Aspect.WATER && this.waterEssentia >= amt) { - this.waterEssentia -= amt; - } else if (aspect == Aspect.ELDRITCH && this.eldritchEssentia >= amt) { - this.eldritchEssentia -= amt; - } else { - return false; - } - this.syncTile(false); - this.markDirty(); - return true; - } -} diff --git a/src/main/java/com/verdantartifice/thaumicwonders/common/tiles/devices/TileMeteorb.java b/src/main/java/com/verdantartifice/thaumicwonders/common/tiles/devices/TileMeteorb.java deleted file mode 100644 index 8dccc599..00000000 --- a/src/main/java/com/verdantartifice/thaumicwonders/common/tiles/devices/TileMeteorb.java +++ /dev/null @@ -1,297 +0,0 @@ -package com.verdantartifice.thaumicwonders.common.tiles.devices; - -import com.verdantartifice.thaumicwonders.ThaumicWonders; -import com.verdantartifice.thaumicwonders.common.tiles.base.TileTW; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import thaumcraft.api.ThaumcraftApiHelper; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.AspectList; -import thaumcraft.api.aspects.IAspectContainer; -import thaumcraft.api.aspects.IEssentiaTransport; -import thaumcraft.api.aura.AuraHelper; -import thaumcraft.common.blocks.IBlockFacingHorizontal; - -public class TileMeteorb extends TileTW implements IAspectContainer, IEssentiaTransport, ITickable { - private static final int CAPACITY = 50; - public static final int MIN_FUEL = 50; - - protected int airEssentia = 0; - protected int waterEssentia = 0; - protected int energyEssentia = 0; - protected int tickCounter = 0; - - @Override - protected void readFromTileNBT(NBTTagCompound compound) { - this.airEssentia = compound.getShort("airEssentia"); - this.waterEssentia = compound.getShort("waterEssentia"); - this.energyEssentia = compound.getShort("energyEssentia"); - } - - @Override - protected NBTTagCompound writeToTileNBT(NBTTagCompound compound) { - compound.setShort("airEssentia", (short)this.airEssentia); - compound.setShort("waterEssentia", (short)this.waterEssentia); - compound.setShort("energyEssentia", (short)this.energyEssentia); - return compound; - } - - @Override - public void update() { - if (!this.world.isRemote && (++this.tickCounter % 5 == 0)) { - this.fill(); - } - } - - protected void fill() { - for (EnumFacing face : EnumFacing.HORIZONTALS) { - if (!this.canInputFrom(face) || this.getEssentiaAmount(face) >= CAPACITY) { - continue; - } - TileEntity te = ThaumcraftApiHelper.getConnectableTile(this.world, this.pos, face); - if (te != null && te instanceof IEssentiaTransport) { - IEssentiaTransport otherTile = (IEssentiaTransport)te; - if (!otherTile.canOutputTo(face.getOpposite())) { - continue; - } - if ( otherTile.getEssentiaType(face.getOpposite()) == this.getEssentiaType(face) && - otherTile.getEssentiaAmount(face.getOpposite()) > 0 && - this.getSuctionAmount(face) > otherTile.getSuctionAmount(face.getOpposite()) && - this.getSuctionAmount(face) >= otherTile.getMinimumSuction() ) { - int taken = otherTile.takeEssentia(this.getEssentiaType(face), 1, face.getOpposite()); - int leftover = this.addToContainer(this.getEssentiaType(face), taken); - if (leftover > 0) { - ThaumicWonders.LOGGER.info("Meteorb spilling {} essentia on fill", leftover); - AuraHelper.polluteAura(this.world, this.pos, leftover, true); - } - this.syncTile(false); - this.markDirty(); - } - } - } - } - - /** - * Get the relative facing for the given absolute facing. The Meteorb's relative north is its control - * panel, west is air input, east is water input, south is energy input. - * @param absFace facing relative to world axes - * @return facing relative to orb faces - */ - public EnumFacing getRelativeFacing(EnumFacing absFace) { - if (this.getBlockType() instanceof IBlockFacingHorizontal && absFace != EnumFacing.UP && absFace != EnumFacing.DOWN) { - EnumFacing blockFacing = this.world.getBlockState(this.pos).getValue(IBlockFacingHorizontal.FACING); - int rotations = 0; - EnumFacing relativeFacing = absFace; - while (blockFacing != EnumFacing.NORTH) { - blockFacing = blockFacing.rotateY(); - rotations++; - } - for (int index = 0; index < rotations; index++) { - relativeFacing = relativeFacing.rotateY(); - } - return relativeFacing; - } else { - return absFace; - } - } - - @Override - public int addEssentia(Aspect aspect, int amt, EnumFacing face) { - if (this.canInputFrom(face) && aspect == this.getEssentiaType(face)) { - return (amt - this.addToContainer(aspect, amt)); - } else { - return 0; - } - } - - @Override - public boolean canInputFrom(EnumFacing face) { - EnumFacing relFace = this.getRelativeFacing(face); - return (relFace == EnumFacing.WEST || relFace == EnumFacing.EAST || relFace == EnumFacing.SOUTH); - } - - @Override - public boolean canOutputTo(EnumFacing face) { - return false; - } - - @Override - public int getEssentiaAmount(EnumFacing face) { - EnumFacing relFace = this.getRelativeFacing(face); - if (relFace == EnumFacing.WEST) { - return this.airEssentia; - } else if (relFace == EnumFacing.EAST) { - return this.waterEssentia; - } else if (relFace == EnumFacing.SOUTH) { - return this.energyEssentia; - } else { - return 0; - } - } - - @Override - public Aspect getEssentiaType(EnumFacing face) { - EnumFacing relFace = this.getRelativeFacing(face); - if (relFace == EnumFacing.WEST) { - return Aspect.AIR; - } else if (relFace == EnumFacing.EAST) { - return Aspect.WATER; - } else if (relFace == EnumFacing.SOUTH) { - return Aspect.ENERGY; - } else { - return null; - } - } - - @Override - public int getMinimumSuction() { - // Can't output, so no need for minimum suction - return 0; - } - - @Override - public int getSuctionAmount(EnumFacing face) { - return (this.getEssentiaAmount(face) >= CAPACITY) ? 0 : 128; - } - - @Override - public Aspect getSuctionType(EnumFacing face) { - return this.getEssentiaType(face); - } - - @Override - public boolean isConnectable(EnumFacing face) { - return this.canInputFrom(face); - } - - @Override - public void setSuction(Aspect aspect, int amt) { - // Do nothing - } - - @Override - public int takeEssentia(Aspect aspect, int amt, EnumFacing face) { - // Can't output - return 0; - } - - @Override - public int addToContainer(Aspect aspect, int toAdd) { - int retVal = 0; - if (toAdd == 0) { - return 0; - } else if (this.airEssentia < CAPACITY && aspect == Aspect.AIR) { - // Add as much air as possible and return the remainder - int added = Math.min(toAdd, CAPACITY - this.airEssentia); - this.airEssentia += added; - retVal = (toAdd - added); - } else if (this.waterEssentia < CAPACITY && aspect == Aspect.WATER) { - // Add as much water as possible and return the remainder - int added = Math.min(toAdd, CAPACITY - this.waterEssentia); - this.waterEssentia += added; - retVal = (toAdd - added); - } else if (this.energyEssentia < CAPACITY && aspect == Aspect.ENERGY) { - // Add as much energy as possible and return the remainder - int added = Math.min(toAdd, CAPACITY - this.energyEssentia); - this.energyEssentia += added; - retVal = (toAdd - added); - } else { - retVal = toAdd; - } - - this.syncTile(false); - this.markDirty(); - return retVal; - } - - @Override - public int containerContains(Aspect aspect) { - if (aspect == Aspect.AIR) { - return this.airEssentia; - } else if (aspect == Aspect.WATER) { - return this.waterEssentia; - } else if (aspect == Aspect.ENERGY) { - return this.energyEssentia; - } else { - return 0; - } - } - - @Override - public boolean doesContainerAccept(Aspect aspect) { - return (aspect == Aspect.AIR || aspect == Aspect.WATER || aspect == Aspect.ENERGY); - } - - @Override - public boolean doesContainerContain(AspectList aspectList) { - boolean satisfied = true; - for (Aspect aspect : aspectList.getAspects()) { - satisfied = satisfied && this.doesContainerContainAmount(aspect, aspectList.getAmount(aspect)); - } - return satisfied; - } - - @Override - public boolean doesContainerContainAmount(Aspect aspect, int amt) { - return (aspect == Aspect.AIR && this.airEssentia >= amt) || - (aspect == Aspect.WATER && this.waterEssentia >= amt) || - (aspect == Aspect.ENERGY && this.energyEssentia >= amt); - } - - @Override - public AspectList getAspects() { - AspectList list = new AspectList(); - if (this.airEssentia > 0) { - list.add(Aspect.AIR, this.airEssentia); - } - if (this.waterEssentia > 0) { - list.add(Aspect.WATER, this.waterEssentia); - } - if (this.energyEssentia > 0) { - list.add(Aspect.ENERGY, this.energyEssentia); - } - return list; - } - - @Override - public void setAspects(AspectList aspects) { - if (aspects != null && aspects.size() > 0) { - this.airEssentia = aspects.getAmount(Aspect.AIR); - this.waterEssentia = aspects.getAmount(Aspect.WATER); - this.energyEssentia = aspects.getAmount(Aspect.ENERGY); - } - } - - @Override - public boolean takeFromContainer(AspectList aspectList) { - if (!this.doesContainerContain(aspectList)) { - return false; - } else { - boolean satisfied = true; - for (Aspect aspect : aspectList.getAspects()) { - satisfied = satisfied && this.takeFromContainer(aspect, aspectList.getAmount(aspect)); - } - return satisfied; - } - } - - @Override - public boolean takeFromContainer(Aspect aspect, int amt) { - if (aspect == Aspect.AIR && this.airEssentia >= amt) { - this.airEssentia -= amt; - } else if (aspect == Aspect.WATER && this.waterEssentia >= amt) { - this.waterEssentia -= amt; - } else if (aspect == Aspect.ENERGY && this.energyEssentia >= amt) { - this.energyEssentia -= amt; - } else { - return false; - } - this.syncTile(false); - this.markDirty(); - return true; - } - -} diff --git a/src/main/java/com/verdantartifice/thaumicwonders/proxy/ProxyGUI.java b/src/main/java/com/verdantartifice/thaumicwonders/proxy/ProxyGUI.java index 6243b9c4..b5bdaa74 100644 --- a/src/main/java/com/verdantartifice/thaumicwonders/proxy/ProxyGUI.java +++ b/src/main/java/com/verdantartifice/thaumicwonders/proxy/ProxyGUI.java @@ -1,8 +1,6 @@ package com.verdantartifice.thaumicwonders.proxy; import com.verdantartifice.thaumicwonders.client.gui.GuiCatalyzationChamber; -import com.verdantartifice.thaumicwonders.client.gui.GuiMeatyOrb; -import com.verdantartifice.thaumicwonders.client.gui.GuiMeteorb; import com.verdantartifice.thaumicwonders.client.gui.GuiPrimordialAccelerator; import com.verdantartifice.thaumicwonders.client.gui.GuiStructureDiviner; import com.verdantartifice.thaumicwonders.client.gui.GuiTimewinder; @@ -23,10 +21,6 @@ public Object getClientGuiElement(int id, EntityPlayer player, World world, int return new GuiTimewinder(); case GuiIds.CATALYZATION_CHAMBER: return new GuiCatalyzationChamber(player.inventory, (TileCatalyzationChamber)world.getTileEntity(new BlockPos(x, y, z))); - case GuiIds.METEORB: - return new GuiMeteorb(new BlockPos(x, y, z)); - case GuiIds.MEATY_ORB: - return new GuiMeatyOrb(new BlockPos(x, y, z)); case GuiIds.STRUCTURE_DIVINER: return new GuiStructureDiviner(); case GuiIds.PRIMORDIAL_ACCELERATOR: diff --git a/src/main/resources/assets/thaumicwonders/lang/en_us.lang b/src/main/resources/assets/thaumicwonders/lang/en_us.lang index dc179ab9..680d0a8b 100644 --- a/src/main/resources/assets/thaumicwonders/lang/en_us.lang +++ b/src/main/resources/assets/thaumicwonders/lang/en_us.lang @@ -15,9 +15,7 @@ tile.thaumicwonders.catalyzation_chamber.name=Catalyzation Chamber tile.thaumicwonders.hexamite.name=Hexamite tile.thaumicwonders.flux_capacitor.name=Flux Capacitor tile.thaumicwonders.flux_capacitor.tooltip.flux=Flux: %1$d -tile.thaumicwonders.meteorb.name=Meteorb tile.thaumicwonders.ore_diviner.name=Ore Diviner -tile.thaumicwonders.meaty_orb.name=Meaty Orb tile.thaumicwonders.void_beacon.name=Void Beacon tile.thaumicwonders.flux_distiller.name=Flux Distiller tile.thaumicwonders.flux_distiller.tooltip.flux=Flux: %1$d @@ -151,10 +149,6 @@ thaumicwonders.research.alienist_stone.title=Eldritch Metal Amplification thaumicwonders.research.alienist_stone.text.stage.1=With the secrets of the eldritch at my disposal, I'm confident that I can eke out more yield from the Catalyzation Chamber. The only question is how. thaumicwonders.research.alienist_stone.text.stage.2=Is there anything these miraculous Primordial Pearls can't do? By infusing an Alchemist's Stone with the essence of a pearl and some native mineral clusters, I can increase its power.
The resulting catalyst stone produces what I call eldritch clusters, which, when smelted, yield three ingots instead of two. I hesitate to call the resulting process "purification", particularly given the significant chance of flux each operation, but the results cannot be denied.
Perhaps there are other things that I can amplify with this stone. I should experiment and find out. -thaumicwonders.research.meteorb.title=Meteorb -thaumicwonders.research.meteorb.text.stage.1=If I can manipulate the flow of time, surely I can do the same for something as relatively mundane as the weather. Time for some research. -thaumicwonders.research.meteorb.text.stage.2=My studies have culminated in a design for a Meteorological Orb, or Meteorb as I call it. It runs on essentia and is dead simple to use.
Once filled with fifty of the appropriate essentia type (Aer for clear skies, Aqua for rain, or Potentia for a thunderstorm), I just push the appropriate button on the front control panel. Each type of essentia is fed into the orb on a different side, each labeled with that aspect's color. - thaumicwonders.research.ore_diviner.title=Ore Divination thaumicwonders.research.ore_diviner.text.stage.1=Digging blindly through the firmament looking for ore is tedious and inefficient. It would be much better if I knew exactly where to find what I was looking for before I picked up a pickaxe. The Sounding enchantment helps, but there's so much information to sift through, and so little time to do it. I'm convinced there's a better way. thaumicwonders.research.ore_diviner.text.stage.2=I've devised a tool to help me divine the location of specific types of ore. When I use a block of ore on this Ore Diviner, it will find a nearby block of ore of that type and reveal its location to me. The visual representation of this knowledge will persist until I right-click the diviner with an empty hand or until something happens to the diviner itself. @@ -163,10 +157,6 @@ thaumicwonders.research.void_fortress_armor.title=Warped Fortress Armor thaumicwonders.research.void_fortress_armor.text.stage.1=Void armor is both strong and self-repairing, but I'm confident that I can improve upon it. Perhaps the lessons I learned improving thaumium armor can be applied here as well. thaumicwonders.research.void_fortress_armor.text.stage.2=My efforts to improve void armor have borne fruit. The armor I have created is a masterpiece of strength and durability, providing additional protection against magic and fire damage, but sacrificing none of the properties that make void armor so unique. In keeping with my earlier efforts, I am calling my newest creation Warped Fortress Armor.
Like the thaumium version, this armor is meant to be worn together. The more pieces I wear, the better each piece protects me and, as a bonus, the better it looks.
As a nod to utility, I've made sure to integrate a set of Goggles of Revealing into the helmet's mask. The mask also replicates the effect of the Thaumium Fortress Armor's Sipping Fiend mask, sometimes healing the wearer when striking. I won't be able to apply other masks because of this however, unlike Thaumium Fortress Armor.
Finally, this armor seems to have a symbiotic relationship with warp. The more permanent warp I have, the more toughness each piece of armor has.
In this, I will be a bastion of invincibility. -thaumicwonders.research.meaty_orb.title=Meaty Orb -thaumicwonders.research.meaty_orb.text.stage.1=I had a dream last night. In it, I used the Meteorb to change the weather, but instead of rain, what fell from the sky was meat. All kinds of meat. I wonder if I can make this dream a reality. Or if I even should. -thaumicwonders.research.meaty_orb.text.stage.2=For better or for worse, I've succeeded. I've created a new form of Meteorb, one which I'm calling, not to put too fine a point on things, a Meaty Orb. It's kind of gross to hold, honestly.
Bending the fabric of reality to my whim isn't cheap, though. In order to work, the Meaty Orb needs 250 *each* of Aqua, Victus, and Alienis essentia. Plus it generates a significant quantity of flux when activated.
Once used, though, it really does make the sky rain meat. For short time and within a short distance, anyway. - thaumicwonders.research.structure_diviner.title=Structure Divination thaumicwonders.research.structure_diviner.text.stage.1=My creations are not the only ones in this world, but seeking out others is a very hit-or-miss prospect. Simply picking a direction and walking will work eventually, but it's hardly efficient. A thaumaturge of my caliber should be able to divine these things ahead of time. thaumicwonders.research.structure_diviner.text.stage.2=Such a simple-looking device, for one with such potential. This Structure Diviner can find the nearest naturally generating vanilla structure in my current dimension with the press of a button. Upon use, it will point the way to my destination as well as give me a very rough indication of how far away it is. @@ -245,10 +235,6 @@ thaumicwonders.gui.timewinder.5=Waxing Crescent thaumicwonders.gui.timewinder.6=First Quarter thaumicwonders.gui.timewinder.7=Waxing Gibbous thaumicwonders.gui.timewinder.8=Day -thaumicwonders.gui.meteorb.0=Clear Skies -thaumicwonders.gui.meteorb.1=Rain -thaumicwonders.gui.meteorb.2=Thunderstorm -thaumicwonders.gui.meaty_orb.0=Meat! thaumicwonders.gui.structure_diviner.0=Village thaumicwonders.gui.structure_diviner.1=Temple thaumicwonders.gui.structure_diviner.2=Mineshaft @@ -268,9 +254,6 @@ event.void_portal.no_world=This portal's linked dimension does not exist. event.void_portal.invader=Something emerges from an unstable portal. event.void_portal.subvert.lesser_crimson=The Crimson Cult has subverted an unstable portal! event.void_portal.subvert.flux_rift=An unstable portal has collapsed into a flux rift! -event.meteorb.used=The weather suddenly shifts. -event.meteorb.offworld=The Meteorb doesn't seem to function here. -event.meteorb.unfueled=The Meteorb needs more essentia for that. event.ore_diviner.not_found=You don't sense anything nearby. event.ore_diviner.found.down=You sense something below you! event.ore_diviner.found.up=You sense something above you! @@ -278,9 +261,6 @@ event.ore_diviner.found.north=You sense something to the north! event.ore_diviner.found.south=You sense something to the south! event.ore_diviner.found.west=You sense something to the west! event.ore_diviner.found.east=You sense something to the east! -event.meaty_orb.used=It's raining meat! -event.meaty_orb.offworld=The Meaty Orb doesn't seem to function here. -event.meaty_orb.unfueled=The Meaty Orb needs more essentia for that. event.structure_diviner.not_found=The diviner doesn't detect anything. event.structure_diviner.found.here=The diviner detects something right on top of you! event.structure_diviner.found.near=The diviner detects something nearby! diff --git a/src/main/resources/assets/thaumicwonders/research/eldritch.json b/src/main/resources/assets/thaumicwonders/research/eldritch.json index 168d957a..303112e7 100644 --- a/src/main/resources/assets/thaumicwonders/research/eldritch.json +++ b/src/main/resources/assets/thaumicwonders/research/eldritch.json @@ -190,30 +190,6 @@ ], "addenda": [] }, - { - "key": "TWOND_MEATY_ORB", - "name": "thaumicwonders.research.meaty_orb.title", - "icons": ["thaumicwonders:meaty_orb"], - "category": "THAUMIC_WONDERS", - "parents": ["TWOND_METEORB"], - "siblings": [], - "meta": ["HIDDEN"], - "location": [2, 8], - "reward_item": [], - "reward_knowledge": [], - "stages": [ - { - "text": "thaumicwonders.research.meaty_orb.text.stage.1", - "required_knowledge":["THEORY;INFUSION;1","OBSERVATION;ELDRITCH;1","THEORY;ELDRITCH;1"], - "warp": 1 - }, - { - "text": "thaumicwonders.research.meaty_orb.text.stage.2", - "recipes": ["thaumicwonders:meaty_orb"] - } - ], - "addenda": [] - }, { "key": "TWOND_VOID_BEACON", "name": "thaumicwonders.research.void_beacon.title", diff --git a/src/main/resources/assets/thaumicwonders/research/infusion.json b/src/main/resources/assets/thaumicwonders/research/infusion.json index b9576425..4cdbceb5 100644 --- a/src/main/resources/assets/thaumicwonders/research/infusion.json +++ b/src/main/resources/assets/thaumicwonders/research/infusion.json @@ -69,29 +69,6 @@ ], "addenda": [] }, - { - "key": "TWOND_METEORB", - "name": "thaumicwonders.research.meteorb.title", - "icons": ["thaumicwonders:meteorb"], - "category": "THAUMIC_WONDERS", - "parents": ["TWOND_TIMEWINDER"], - "siblings": [], - "meta": [], - "location": [2, 6], - "reward_item": [], - "reward_knowledge": [], - "stages": [ - { - "text": "thaumicwonders.research.meteorb.text.stage.1", - "required_knowledge":["THEORY;INFUSION;1","THEORY;AUROMANCY;1","OBSERVATION;ELDRITCH;1"] - }, - { - "text": "thaumicwonders.research.meteorb.text.stage.2", - "recipes": ["thaumicwonders:meteorb"] - } - ], - "addenda": [] - }, { "key": "TWOND_ORE_DIVINER", "name": "thaumicwonders.research.ore_diviner.title", diff --git a/src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_e.png b/src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_e.png deleted file mode 100644 index 1fe6678c2ec30fbfd13aae157d1a79f834f4796e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt3( zJ+r@loG*ZC9(cMqhFJKY4cy4pY#?w}-Lgz0WJ3T?nD(PbFP^FC{mZzn^g~wmm!5vy z&`~KR>RS};|CUjO93J5OXS((7lzPH|3+BKe8>CZ!(OUEX0 zy2edhe)_GG+mha|+xA7j3vc%4`mB+Yyj9Y6pX-H?J{Ogsbmuwq^IN7JDXwVGT(Rm@ zRP;2}2B`?wf3-_(Tpw@C?T!AB;2mfBQD(u4*R$FdX;c_oRd|2q;X|>U$Y~#Wmy}en zmj{|WOKkbmZ&{J1Ju&g#%;t_As(kZUEax#BFA;qIQS&Fm)Ud3g>zfXR0sYG0>FVdQ I&MBb@0L;6OtpET3 diff --git a/src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_n.png b/src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_n.png deleted file mode 100644 index 40f52f24ce24812ddb3fb1469ef095227767dbaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QJXZF{R^94}N22U5q z5DWjefxG#d9e8&8C#7gRtFi>Co4IYv>u9xqqOYY=w`A-2oys+= z#t$|a^r!4LGoO4sYR9raDvDl+U3d}qIqmDnV xpugMw-}{3(fyY;GkmmgKS5Cq9W83LR?31g@G_HPs77cVegQu&X%Q~loCIBA5a=ZWl diff --git a/src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_s.png b/src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_s.png deleted file mode 100644 index 87e150e3d6aaf1fa1e1edf0f03f7169cc6e530cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QJXZF{R^94}NT~8Os z5DWjafrfm|20UjbOWf>oS=!a%B$$+#lI*Orre=%NBURhyO|#uLm>XStT9ZEM#-7V8 z8~OjnrF5yDSDx7+&Me4yY62Hq!HwVin*+a?Djbs66VBC{8Sq5Zb(?Koip#C2eCc0r zE6sl_+2C_%TiEQ2kE2<9pL)0`m6{#-6(txYbpEOAvyJPrvvWg38L|>Ye}13Z#nZcc zopIj5X5GrGM~WL3WlBk%+VtdLNOO%*`}F7yPb<%vPq_3{_Kxet8SR3f?4LcDx!9%c tX9}OvqiGfuLQg9A&P;IIb3F4C+`2+MQgQu&X%Q~loCIC*Gif{k` diff --git a/src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_tb.png b/src/main/resources/assets/thaumicwonders/textures/blocks/meaty_orb_tb.png deleted file mode 100644 index cb62f8c199c9c75cad7fb3d5f99d28df0f95f5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt3( zJ+r@loG*ZCrg^$JhFJK&ow$+D!9b$rw}+c_vx|q1+2XTmV*c8b>^gVHMThDqOt>=t z{NM8W%(H=F5oPmo!rjyEifPU~*Wl4$wkD+^c|L!l@JqggrPA+KCuPmN@!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QJXZF{R^94}NT~8Os z5DWjafrfm|20Ujj{WsVo+UX@K*s65o(1~Mh5f!=JN4%@fv6}ZL%Cf zNz%X8o)Gb#=WZmZ&!)sQMNyRJ!G`be(-yzTc4)DWQM(mkwD5#>SI*w}lO0>O-ZT61 z`f=I^&%~K6xogc9AK%U~>(s;!msdF*+jlB#QJHty`b=`{^=r3Qtzx)xKMsAZz0GZpAj22WQ%mvv4FO#qpZikSca diff --git a/src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_e.png b/src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_e.png deleted file mode 100644 index ffc77cc4fbe497172b39f3ae3cb3299dfe807ffe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)(v3cDv<)GGu@J z{PGd`vTeWL17j)#5D0)K%7_raNu^R$NhXsxl%NmYZnqnFrj=&1NddB%kCVbkDYk)8 zeE{6=cT~z`GJ@pXl_1CCkqjhP0EFiXbvUc3Sb)@OHF%Rs4W$YD!hoT=N^LY6DADWn z*q{IcdODrJ@CE@&QkV}sGaxa`K^68;sZ@kDJ)ch~F)lt29(KCjoy<^zF1G#aHf3xzQ!KXN!6Mq=U)hvN?(hBofN-9$P7 O0000^v*6llnq6QYvm9*PNdBTBjryR(HMQ{6(GaG1}ro;nM_E(*=z`q z1~f$=;Q4r+-EIest{8w2gN>IK5r9Dqv;vWWIy^6z3w*kjX0u5QH2rbgw#E1M{loWV z+kD_4T(4KAl*wd-k@HpqIUElE2}nn?>WT$OtyV)fP;#i5U~{O(02EZ$btcj4_1K_5 zf_gk20TDw0DUps&_!x|sF4oy+-^6D zU=yNa&Xd63S|}8JKA+d?W%GeRAQp>JnuVg6n;$tG4)bs0cQ_osrnE@}m*fQ300000 LNkvXXu0mjfU7rZj diff --git a/src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_s.png b/src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_s.png deleted file mode 100644 index 1ec58233de10218e4d6fdfb6da5c1be2720e789d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)xJMa+#(XjYc^=9*^7Y#*f8fkw_$& zOy+XAVzHRbW>cvY2~MX|g27;+P^i^v?RNXiw&8HNTrRKI>-l_Muh*B$#j>o`YBe5@ z1A&0}e7;O3Q>j!soz7yh;Out0yWQ@`HnI$nkh21IZNt;kiN`&T1+aAk}IW-lS4PX~MoRV5qKA8;u4^^m;uu zD1d;TPA4$DL4cAJ<^#_RNX&9jg*}wZWnoRv=Mzedi_ZgjBrz)^Dc$giQy2ci5|r2g z=)h#qAV^ODNC`<^i33ADfgg96C^azfoQy;q0lBhfW&rc~HA9&&;S4c M07*qoM6N<$f@ru3q5uE@ diff --git a/src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_w.png b/src/main/resources/assets/thaumicwonders/textures/blocks/meteorb_w.png deleted file mode 100644 index 8194b8e56442f8021d890c5a8fe3c245aa349b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 622 zcmV-!0+IcRP)r$K#xCx7+1%;U^M_SS*%KrwfHb zxm?cY^O;PB1gFy}!C=#9X!)YyWOS$+04gDVWbq>z^Fa|9*+kq zWwTj9a_&ly^Z85$k}CkhbA>vb)l@7%>h(IjNu`F;gnePaP+g_AS}l|q338$lZxy-8q?;Kn_c~qpu?a z!^VE@KZ&di49pAxJ|V6^@jx}TRy(_y?(WNjgZE@+zAq^FUta#dr{~qSZU5J<{eSEj zP|YY94S``90>_&+Se8IrLB;x7f7*Y}Uc8YgVvw_HgTP8J3 z-|h8PCFd?&Z#*gD#D?la->$1JXNd4-+%SzPL6`MF6j#Gm5r%9{hHF6#YnBcPi8JgK zdZ#BpWqHgvt@Q47c70|a_K3b(>ubg94iq$e|9^kmU8x5@Z~lK>wr}6hPv3pmD&%he zs_XmwkY_{A?ONtL><^yqVR`@a`qw-C)&F+#8c05{WBmT*`I|qB-5-4XELmUj?{f92fhFR diff --git a/src/main/resources/assets/thaumicwonders/textures/gui/gui_meaty_orb_background.png b/src/main/resources/assets/thaumicwonders/textures/gui/gui_meaty_orb_background.png deleted file mode 100644 index c17f6278cf43e89330b8003e63ffd227ae6dcf53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1801 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5D>38$lZxy-8q?;Kn_c~qpu?a z!^VE@KZ&di49pAxJ|V6^@w*lV_ucL9`?@^xba)i(^(ZOoQBmfj@&cgLC>RZa;T-~r z7Z*+h<(iTpzu^BP8!!ZaXIBNrHfMoHWHAE+-(e7DJf6QI1t=&{;u=vBoS#-wo>-L1 zP>`6JSE84fTB2a0XQ*fP*N^iB0|Qf%r;B4qMcmtIj(v|D1P+)POCI`ff2K@XzRhMq znd)sJBi*k{Wtv`{_x5AlFpViem-RptSHo5jhHOoSYe5WamNG0inXQJ;nAgmde_lH0`PT^L`QMGNACut!Fz=_$_vHGx*QY@WjxoPU?0@{nO8)x! zk2N*-&&Nn7+Z_1*xbn{$_rF{3|1kXnHYL9C>x%iWC+?sB=ht75n#cG5u*bZ~dWL#tfBiUL0L|I! z>Eakt5%>0vVP5o0Mz@Qa%Vs2XO<`U#*VSjDn)QjUP1|&osy!y^vINLA3Mj7RUa-e)#so@z2IUX}P!G+v@W7pZ~s#q3`1VKl4Av$5pmnpD@vVH{UOt zSNU6u_n$BQbN{i>j=uY>AAT8q;*ppA`uuqP#}4iXpKRCbDzATF^<}-}pPS!zfb^Hi z?&p5+-`Q>6TbqBYt$y$S`HK62#2@|bkN=-wEtvChJB$CciRr5z-e2|o&U2uO&pZ3A z+WtI#`{DhU_Q&3JdiUeqU?e1AMxkK@}ZCG&VM|0{?SIGPd?ip>wTT~`^pdfbI6tt@%kTMfAu^+bwc~cuaEIE%Kx8NelgcOzweL# zGyli`PjCHPBU#zj&-b@j{7~kH|4(cFX~!I||2gmaBw)z&{jzxj44MBkr2ek`{PX;- zpHu%oI-dR9H08;~y8H{@zxA(t7(eHHZR_lh|BG%{@=8{U&X@kR-6rGD^?K1C&w;`2 w?Dj+J_>aH!4Ej3C8x%(ojYHtU+xB{9t-SdkSls6Wi%13rPgg&ebxsLQ0B3BI^Z)<= diff --git a/src/main/resources/assets/thaumicwonders/textures/gui/gui_meteorb_background.png b/src/main/resources/assets/thaumicwonders/textures/gui/gui_meteorb_background.png deleted file mode 100644 index 95c14f929c67f35e4f44de61c32c0c458b02a86d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3509 zcmeHJ`#TeS8=q+7DO5^1>?s{QsT?{uCSIbFnb3sA%pu1e*ygm=2ty95<{av|s zPAeqmIYmjvW=xieImF8l_Nv}L;r;1(pZmJL*ZsZj>;7Ed&-MA<-~0Y1U4dSd|4sEb z001CwbIHmP0Fc_;N&#f0H(k(km#dpj#?Qje0sweP-L{6@3IIq0u0XC@Z^qr--90@$ zkw~PMmzTG0|Ej90|SGCf`WsCQ79A|jmBUwSS&UqBqTI6 z6o~85I>pBoav^(#@MUZ{4~@CX=J1qhn%XZr{Eg8yg!J z7Z)ENPoYo}5)u*<6O)pX?%cVPoSdAJl9HO5nwFMErBd(Sy?gK8z5Dm?(`dBx^z^K( ztnBRUoSd9Zw*S~a3j7ZhK=O=OKOPF+5$YuQ|2BY=7<6P)S~=_`R~!JK(D-9X?Kyfm zdNa5WZ|#D2!rZ`zBSU=wSY!YiuY>l*A2_3PQpaE&DmSr-Q?s$MxEkRxoztE<*1FSL z+jg=z>2RXP>3a)t_k0$Qc5X-%Y0{#JLqvO>h=a4^usj)D$TkQcyfLQxdAC%ykJc8w zc1Ib{`$e+#hi!L8+hiUD&`wwbG+pliAZ34tgsulop_e42r?DvT*yL+36hlDO3L=s? zgz?%}EwA;d^QE)RgcpNk)BXf$CcV82s-iQM#f08qk5(B9(OV+$BC%p4kshUME{go@ z)vYHNURKyk0FOs@gsgk7S3j<9=eqT9?&w#cDFk5uzN(L~&gCjSd|hyB~y zFnuLQ`WrFBG!R6a7*3cS?kl<2kJTEae;Jv2Uw2Zwf^ee7wPnVxt@zsHL_FG2+zNXa z!hL`PcVy<17+?|+4fUX=9@4Al!= zM1m^dg{$+&uq{V^(*D<_&c}gK%jSmX)yu~MVlc*#o$2+t%n!jzZ#@EvYKzyiw?p!h z^?i&qiX2KQ+~K?$xrrC$H{aB3fLY0u)XdwlrqWS~GfIjd z##Dcv@aP-V)?3|)pdCd~Vp^!@+w|hw`>GPN$(H-YEYfF0AI^H8a@y)XU0+<~TLwP231=*xAb2YD=NH9A?$@H;5iwr}*5_CI?xRj2r;A+IGYxEuWB_$O6eYN*4iwafVxDa zz23Lx;0RNxj8krjP1SXZxLMfJUs-zEn#rE64YIE9&hK75&|>7)py*xDI|Rzdvj!3> z@~=vUbri3ta#3jzVQ($f}tNW=$B`S2ju4AD9ww&^>g*b_a%*!Ugbm zU2Kuk=Ti|!!ZYN5ACB*Kd-;L($0jp+9Sr8*3Dw82Grn=*@!(n&%@?7Frc{ha`YVH$@wQRxxr}px zY89(~tkdWBfgZo22cwRPR*FXmc5$uRw z%lRc%hH+O}`Mgkw&$J9f$wnqB@_-MIZC&rtISsirZ6)T`RT?)58gU?A>F8X_ZjQj2 zBRu~p_+hyw0q*pCm6WDsB6)j0=ma%UbK9poIQ21Y z#|QPY`RaQ83vL$11*4~yElqvY*04K3ZyM!Fc*4U7tKFkMMb|cP1FHL7KFo12-GgTA zH16OcG^d5}M?qZvqZ8P=@hjrAm9=OTmPq$aSj4Mbn2C_B%Gv`_QGJNN99jo&Ri}49 z3pjJVwlz|JZa_qeyXaZj#ZV+Vb3I=_$pi(*&InYcQZeuI_BXFkTM*wz`j@S$Q?#^* z!v*&j^Ei3a%~@07PPoz={+we3B?v7Xg$9R7*5sbTFAAVaL1VE%E)`MpFZ zQuKi5`|5Ev@RfLU@$PyKMWK3BtV>UVeQFnsHFS@dYb%-ekFX-)#2&=~;30Cnv!Ofr z+rq+DsJVY^U3`M-tht{wrrB26;Th8H3zE5Lo*(60j(bv!x}vzN`u*98HU*FT{iX6t z+>$6ZV$I60{3)LIcp_iUq7!yZ&7QtsA_Kah3Wo*ck9O)_H$4kyuY{`bagZbENpHx; zCS_JJl&7WyR~v$3m{03A90wBfORNc^!-g75HfQ%xdrtTtO>mz-P6CRHr7z9VoT54{{ce{^kx76