Skip to content

Instantly share code, notes, and snippets.

@GaeaKat
Created February 21, 2015 14:10
Show Gist options
  • Save GaeaKat/b0653d25e7e2f4678549 to your computer and use it in GitHub Desktop.
Save GaeaKat/b0653d25e7e2f4678549 to your computer and use it in GitHub Desktop.
/**
* This class was created by <Vazkii>. It's distributed as
* part of the ThaumicTinkerer Mod.
*
* ThaumicTinkerer is Open Source and distributed under a
* Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License
* (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB)
*
* ThaumicTinkerer is a Derivative Work on Thaumcraft 4.
* Thaumcraft 4 (c) Azanor 2012
* (http://www.minecraftforum.net/topic/1585216-)
*
* File Created @ [4 Sep 2013, 16:33:54 (GMT)]
*/
package thaumic.tinkerer.client.core.proxy;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.client.EnumHelperClient;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.common.MinecraftForge;
import thaumcraft.client.fx.ParticleEngine;
import thaumic.tinkerer.client.core.handler.ClientTickHandler;
import thaumic.tinkerer.client.core.handler.GemArmorKeyHandler;
import thaumic.tinkerer.client.core.handler.HUDHandler;
import thaumic.tinkerer.client.core.handler.kami.KamiArmorClientHandler;
import thaumic.tinkerer.client.core.handler.kami.PlacementMirrorPredictionRenderer;
import thaumic.tinkerer.client.core.handler.kami.SoulHeartClientHandler;
import thaumic.tinkerer.client.core.handler.kami.ToolModeHUDHandler;
import thaumic.tinkerer.client.core.helper.ClientHelper;
import thaumic.tinkerer.client.lib.LibRenderIDs;
import thaumic.tinkerer.client.render.block.RenderInfusedCrops;
import thaumic.tinkerer.client.render.block.RenderMagnet;
import thaumic.tinkerer.client.render.block.RenderRepairer;
import thaumic.tinkerer.client.render.block.kami.RenderWarpGate;
import thaumic.tinkerer.client.render.item.RenderGenericSeeds;
import thaumic.tinkerer.client.render.item.RenderMobDisplay;
import thaumic.tinkerer.client.render.item.kami.RenderPlacementMirror;
import thaumic.tinkerer.client.render.tile.*;
import thaumic.tinkerer.client.render.tile.kami.RenderTileWarpGate;
import thaumic.tinkerer.common.ThaumicTinkerer;
import thaumic.tinkerer.common.block.tile.TileEnchanter;
import thaumic.tinkerer.common.block.tile.TileFunnel;
import thaumic.tinkerer.common.block.tile.TileMagnet;
import thaumic.tinkerer.common.block.tile.TileRepairer;
import thaumic.tinkerer.common.block.tile.kami.TileWarpGate;
import thaumic.tinkerer.common.block.tile.tablet.TileAnimationTablet;
import thaumic.tinkerer.common.compat.FumeTool;
import thaumic.tinkerer.common.core.handler.ConfigHandler;
import thaumic.tinkerer.common.core.proxy.TTCommonProxy;
import thaumic.tinkerer.common.item.ItemInfusedSeeds;
import thaumic.tinkerer.common.item.ItemMobDisplay;
import thaumic.tinkerer.common.item.kami.ItemPlacementMirror;
import thaumic.tinkerer.common.item.kami.foci.ItemFocusShadowbeam;
public class TTClientProxy extends TTCommonProxy {
public static EntityPlayer getPlayer() {
return Minecraft.getMinecraft().thePlayer;
}
@Override
public void preInit(FMLPreInitializationEvent event) {
super.preInit(event);
if (Loader.isModLoaded("ComputerCraft")) {
MinecraftForge.EVENT_BUS.register(new FumeTool());
}
if (ConfigHandler.enableKami)
//kamiRarity = EnumHelperClient.addRarity("KAMI", 0x6, "Kami");
kamiRarity = EnumHelperClient.addEnum(new Class[][]{{EnumRarity.class, EnumChatFormatting.class, String.class}}, EnumRarity.class, "KAMI", EnumChatFormatting.LIGHT_PURPLE, "Kami");
}
}
package thaumic.tinkerer.common.compat;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import dan200.computercraft.api.peripheral.IPeripheral;
import dan200.computercraft.api.turtle.*;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.util.IIcon;
import net.minecraftforge.client.event.TextureStitchEvent;
import thaumic.tinkerer.common.ThaumicTinkerer;
import thaumic.tinkerer.common.block.BlockGas;
import thaumic.tinkerer.common.item.ItemGasRemover;
/**
* Created by Katrina on 04/02/2015.
*/
@Optional.Interface(iface = "dan200.computercraft.api.turtle.ITurtleUpgrade", modid = "ComputerCraft")
public class FumeTool implements ITurtleUpgrade {
@SideOnly(Side.CLIENT)
public static IIcon icon;
@Override
@Optional.Method(modid = "ComputerCraft")
public int getUpgradeID() {
return 171;
}
@Override
@Optional.Method(modid = "ComputerCraft")
public String getUnlocalisedAdjective() {
return "ttcomputer.dissipator";
}
@Override
@Optional.Method(modid = "ComputerCraft")
public TurtleUpgradeType getType() {
return TurtleUpgradeType.Tool;
}
@Override
@Optional.Method(modid = "ComputerCraft")
public ItemStack getCraftingItem() {
return new ItemStack(ThaumicTinkerer.registry.getFirstItemFromClass(ItemGasRemover.class));
}
@Override
@Optional.Method(modid = "ComputerCraft")
public IPeripheral createPeripheral(ITurtleAccess turtle, TurtleSide side) {
return null;
}
@Override
@Optional.Method(modid = "ComputerCraft")
public TurtleCommandResult useTool(ITurtleAccess turtle, TurtleSide side,
TurtleVerb verb, int direction) {
if(verb==TurtleVerb.Dig)
{
ChunkCoordinates pos=turtle.getPosition();
int xs = (int) pos.posX;
int ys = (int) pos.posY;
int zs = (int) pos.posZ;
for(int x = xs - 3; x < xs + 3; x++)
for(int y = ys - 3; y < ys + 3; y++)
for(int z = zs - 3; z < zs + 3; z++) {
Block block = turtle.getWorld().getBlock(x, y, z);
if(block != null && block instanceof BlockGas) {
BlockGas gas = (BlockGas) block;
gas.placeParticle(turtle.getWorld(), x, y, z);
turtle.getWorld().setBlock(x, y, z, Blocks.air, 0, 1 | 2);
}
}
//turtle.getWorld().playSoundAtEntity(turtle., "thaumcraft.wand", 0.2F, 1F);
return TurtleCommandResult.success();
}
return TurtleCommandResult.failure();
}
@Override
@Optional.Method(modid = "ComputerCraft")
@SideOnly(Side.CLIENT)
public IIcon getIcon(ITurtleAccess turtle, TurtleSide side) {
return icon;
}
@Override
@Optional.Method(modid = "ComputerCraft")
public void update(ITurtleAccess turtle, TurtleSide side) {
}
@SubscribeEvent
@Optional.Method(modid = "ComputerCraft")
public void registerIcons(TextureStitchEvent evt) {
if (evt.map.getTextureType() == 1) icon = evt.map.registerIcon("ttinkerer:gasRemover");
}
}
/**
* This class was created by <Vazkii>. It's distributed as
* part of the ThaumicTinkerer Mod.
*
* ThaumicTinkerer is Open Source and distributed under a
* Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License
* (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB)
*
* ThaumicTinkerer is a Derivative Work on Thaumcraft 4.
* Thaumcraft 4 (c) Azanor 2012
* (http://www.minecraftforum.net/topic/1585216-)
*
* File Created @ [4 Sep 2013, 16:29:41 (GMT)]
*/
package thaumic.tinkerer.common.core.proxy;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side;
import dan200.computercraft.api.ComputerCraftAPI;
import li.cil.oc.api.Driver;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.EnumHelper;
import thaumcraft.api.aspects.IEssentiaTransport;
import thaumcraft.api.wands.WandCap;
import thaumcraft.api.wands.WandRod;
import thaumcraft.common.tiles.*;
import thaumic.tinkerer.common.ThaumicTinkerer;
import thaumic.tinkerer.common.block.tile.TileFunnel;
import thaumic.tinkerer.common.block.tile.TileRepairer;
import thaumic.tinkerer.common.block.tile.transvector.TileTransvectorInterface;
import thaumic.tinkerer.common.compat.FumeTool;
import thaumic.tinkerer.common.core.handler.ConfigHandler;
import thaumic.tinkerer.common.core.handler.ModCreativeTab;
import thaumic.tinkerer.common.core.handler.kami.DimensionalShardDropHandler;
import thaumic.tinkerer.common.core.handler.kami.KamiArmorHandler;
import thaumic.tinkerer.common.core.handler.kami.KamiDimensionHandler;
import thaumic.tinkerer.common.core.handler.kami.SoulHeartHandler;
import thaumic.tinkerer.common.core.helper.AspectCropLootManager;
import thaumic.tinkerer.common.core.helper.BonemealEventHandler;
import thaumic.tinkerer.common.core.helper.NumericAspectHelper;
import thaumic.tinkerer.common.enchantment.ModEnchantments;
import thaumic.tinkerer.common.enchantment.core.EnchantmentManager;
import thaumic.tinkerer.common.item.foci.ItemFocusDeflect;
import thaumic.tinkerer.common.item.kami.wand.CapIchor;
import thaumic.tinkerer.common.item.kami.wand.RodIchorcloth;
import thaumic.tinkerer.common.lib.LibMisc;
import thaumic.tinkerer.common.network.GuiHandler;
import thaumic.tinkerer.common.network.PlayerTracker;
import thaumic.tinkerer.common.network.packet.*;
import thaumic.tinkerer.common.network.packet.kami.PacketSoulHearts;
import thaumic.tinkerer.common.network.packet.kami.PacketToggleArmor;
import thaumic.tinkerer.common.network.packet.kami.PacketWarpGateButton;
import thaumic.tinkerer.common.network.packet.kami.PacketWarpGateTeleport;
import thaumic.tinkerer.common.peripheral.OpenComputers.*;
import thaumic.tinkerer.common.peripheral.PeripheralHandler;
import thaumic.tinkerer.common.potion.ModPotions;
import thaumic.tinkerer.common.research.ResearchHelper;
public class TTCommonProxy {
public static EnumRarity kamiRarity;
public WandCap capIchor;
public WandRod rodIchor;
public Item.ToolMaterial toolMaterialIchor;
public void preInit(FMLPreInitializationEvent event) {
toolMaterialIchor = EnumHelper.addToolMaterial("ICHOR", 4, -1, 10F, 5F, 25);
ModCreativeTab.INSTANCE = new ModCreativeTab();
ConfigHandler.loadConfig(event.getSuggestedConfigurationFile());
//ModItems.initItems();
NumericAspectHelper.init();
ThaumicTinkerer.registry.preInit();
capIchor = new CapIchor();
rodIchor = new RodIchorcloth();
ModCreativeTab.INSTANCE.addWand();
if (Loader.isModLoaded("ComputerCraft")) {
initCCPeripherals();
}
registerVersionChecker();
kamiRarity = EnumHelper.addEnum(new Class[][]{{EnumRarity.class, EnumChatFormatting.class, String.class}}, EnumRarity.class, "KAMI", EnumChatFormatting.LIGHT_PURPLE, "Kami");
}
protected void initCCPeripherals() {
PeripheralHandler handler = new PeripheralHandler();
Class[] peripheralClasses = new Class[]{
TileAlembic.class, TileCentrifuge.class, TileCrucible.class, TileFunnel.class,
TileInfusionMatrix.class, TileJarFillable.class, TileJarNode.class, TileNode.class,
TileRepairer.class, TileTubeFilter.class, TileTransvectorInterface.class, TileWandPedestal.class,
TileDeconstructionTable.class, TileJarBrain.class, TileSensor.class, TileArcaneBore.class, IEssentiaTransport.class
};
handler.registerPeripheralProvider();
ComputerCraftAPI.registerTurtleUpgrade(new FumeTool());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment