Advertisement
TheZyga

mod_Purgatory.java

Jan 1st, 2018
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package net.minecraft.src;
  2.  
  3. import java.util.Map;
  4. import java.util.Random;
  5. import net.minecraft.client.Minecraft;
  6. import net.minecraft.src.BaseMod;
  7. import net.minecraft.src.Block;
  8. import net.minecraft.src.DimensionBase;
  9. import net.minecraft.src.Item;
  10. import net.minecraft.src.ItemStack;
  11. import net.minecraft.src.ModLoader;
  12. import net.minecraft.src.Teleporter;
  13. import net.minecraft.src.TileEntityChest;
  14. import net.minecraft.src.PurgatoryWorld;
  15. import net.minecraft.src.World;
  16. import net.minecraft.src.WorldProvider;
  17. import net.minecraft.src.WorldProviderPurgatory;
  18. import net.minecraft.src.RenderCow;
  19. import net.minecraft.src.RenderPig;
  20. import net.minecraft.src.RenderSheep;
  21.  
  22. public class mod_Purgatory extends BaseMod {
  23.  
  24.    public static boolean SAPIexists;
  25.  
  26.  
  27.    public static final Block BlockPurgatoryGrass = (new BlockPurgatoryGrass (98, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/PurgatoryTop.png")).setHardness(0.6F).setResistance(10.0F).setStepSound(Block.soundMetalFootstep).setBlockName("PurgatoryGrass"));
  28.    public static int PurgatoryGrassTop;
  29.    public static int PurgatoryGrassSide;
  30.    public static int PurgatoryGrassBottom;
  31.    public static final Block PurgatoryStone = (new BlockPurgatoryStone(100, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/PurgatoryStone.png"))).setHardness(1.5F).setResistance(10.0F).setStepSound(Block.soundStoneFootstep).setBlockName("PurgatoryStone");
  32.    public static final Block BloodyCobble = (new Block(101, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/BloodyStone.png"), Material.rock)).setHardness(2.0F).setResistance(10.0F).setStepSound(Block.soundStoneFootstep).setBlockName("BloodyCobble");
  33.    public static final Block PurgatoryDirt = (new BlockPurgatoryDirt(102, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/PurgatoryDirt.png"))).setHardness(0.5F).setStepSound(Block.soundGravelFootstep).setBlockName("PurgatoryDirt");
  34.    public static final Block PurgatoryCobble = (new Block(103, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/PurgatoryCobble.png"), Material.rock)).setHardness(1.5F).setResistance(10.0F).setStepSound(Block.soundStoneFootstep).setBlockName("PurgatoryStone");
  35.    public static final Block PurgatoryWood = (new BlockPurgatoryLog(104)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setBlockName("PurgatoryLog").disableNeighborNotifyOnMetadataChange();
  36.    public static int LogTop;
  37.    public static int Log;
  38.    public static final BlockPurgatoryLeaves PurgatoryLeaves = (BlockPurgatoryLeaves)(new BlockPurgatoryLeaves(105, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/Leaves.png"))).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setBlockName("PurgatoryLeaves").disableStats().disableNeighborNotifyOnMetadataChange();
  39.    public static int Leaves;
  40.    public static final Block PurgatoryPlanks = (new Block(107, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/Planks.png"), Material.wood)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setBlockName("PurgatoryWood").disableNeighborNotifyOnMetadataChange();
  41.    public static final Block Sludge = (new BlockSludge(108, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/Sludge.png"))).setHardness(0.6F).setResistance(5.0F).setStepSound(Block.soundGravelFootstep).setBlockName("Sludge");
  42.    public static final BlockPurgatoryFlower plantOrange = (BlockPurgatoryFlower)(new BlockPurgatoryFlower(109, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/OrangeFlower.png"))).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setBlockName("Orange");
  43.    public static final BlockPurgatoryFlower plantPink = (BlockPurgatoryFlower)(new BlockPurgatoryFlower(110, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/PinkFlower.png"))).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setBlockName("Pink");
  44.    public static final BlockPurgatoryFlower plantPurple = (BlockPurgatoryFlower)(new BlockPurgatoryFlower(111, ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/PurpleRose.png"))).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setBlockName("PurpleRose");
  45.    public static final Block PurgatorySapling = (new BlockPurgatorySapling(112, 15)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setBlockName("PurgatorySapling").disableNeighborNotifyOnMetadataChange();
  46.  
  47.  
  48.    public void AddRenderer(Map var1) {
  49.           var1.put(EntityGiantZombie.class, new RenderGiantZombie(new ModelZombie(), 0, 0));
  50.           var1.put(EntityNew.class, new RenderNew());
  51.        }
  52.    
  53.    mod_Purgatory() {
  54.       ModLoader.SetInGameHook(this, true, true);
  55.       ModLoader.SetInGUIHook(this, true, true);
  56.       ModLoader.RegisterEntityID(EntityGiantZombie.class, "OhFuck", ModLoader.getUniqueEntityId());
  57.       //ModLoader.AddSpawn(EntityGiantZombie.class, 100, EnumCreatureType.monster);
  58.       ModLoader.RegisterEntityID(EntityNew.class, "Cuck", ModLoader.getUniqueEntityId());          
  59.       //ModLoader.AddSpawn(EntityNew.class, 500, EnumCreatureType.monster);
  60.  
  61.  
  62.      
  63.       ModLoader.RegisterBlock(BlockPurgatoryGrass);
  64.        ModLoader.RegisterBlock(PurgatoryStone);
  65.        ModLoader.RegisterBlock(BloodyCobble);
  66.        ModLoader.RegisterBlock(PurgatoryDirt);
  67.        ModLoader.RegisterBlock(PurgatoryCobble);
  68.        ModLoader.RegisterBlock(PurgatoryWood);
  69.        ModLoader.RegisterBlock(PurgatoryLeaves);
  70.        ModLoader.RegisterBlock(PurgatoryPlanks);
  71.        ModLoader.RegisterBlock(Sludge);
  72.        ModLoader.RegisterBlock(plantOrange);
  73.        ModLoader.RegisterBlock(plantPink);
  74.        ModLoader.RegisterBlock(plantPurple);
  75.        ModLoader.RegisterBlock(PurgatorySapling);
  76.        
  77.        
  78.        ModLoader.AddName(BlockPurgatoryGrass, "Purgatory Grass");
  79.        ModLoader.AddName(PurgatoryStone, "Purgatory Stone");
  80.        ModLoader.AddName(BloodyCobble, "Bloody Purgatory Cobblestone");
  81.        ModLoader.AddName(PurgatoryDirt, "Purgatory Dirt");
  82.        ModLoader.AddName(PurgatoryCobble, "Purgatory Cobblestone");
  83.        ModLoader.AddName(PurgatoryWood, "Dead Wood");
  84.        ModLoader.AddName(PurgatoryLeaves, "Purgatory Leaves");
  85.        ModLoader.AddName(PurgatoryPlanks, "Planks");
  86.        ModLoader.AddName(Sludge, "Sludge");
  87.        ModLoader.AddName(plantOrange, "Orange Flower");
  88.        ModLoader.AddName(plantPink, "Pink Flower");
  89.        ModLoader.AddName(plantPurple, "Purple Rose");
  90.        ModLoader.AddName(PurgatorySapling, "Dead Sapling");
  91.        
  92.        PurgatoryGrassTop = ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/PurgatoryTop.png");
  93.        PurgatoryGrassSide = ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/PurgatorySide.png");
  94.        PurgatoryGrassBottom = ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/PurgatoryBottom.png");
  95.        LogTop = ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/LogTop.png");
  96.        Log = ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/Log.png");
  97.        Leaves = ModLoader.addOverride("/terrain.png", "/Purgatory/Blocks/Leaves.png");
  98.  
  99.  
  100.      
  101.  
  102.       try {
  103.          Class.forName("net.minecraft.src.DimensionPurgatory").newInstance();
  104.          SAPIexists = true;
  105.          System.out.println("Found SAPI, initialized Purgatory dimension");
  106.          System.out.println("Dimension 8 is " + DimensionBase.getDimByNumber(8));
  107.       } catch (ClassNotFoundException var2) {
  108.          SAPIexists = false;
  109.          System.out.println("Did not find SAPI");
  110.          System.err.println("Caught ClassNotFoundException: " + var2.getMessage());
  111.       } catch (NoClassDefFoundError var3) {
  112.          SAPIexists = false;
  113.          System.out.println("Did not find SAPI");
  114.          System.err.println("Caught ClassNotFoundException: " + var3.getMessage());
  115.       } catch (InstantiationException var4) {
  116.          var4.printStackTrace();
  117.       } catch (IllegalAccessException var5) {
  118.          var5.printStackTrace();
  119.       }
  120.  
  121.      
  122.      
  123.      
  124.       ToolBase.Shovel.mineBlocks.add(new BlockHarvestPower(PurgatoryDirt.blockID, 0.0F));
  125.       ToolBase.Shovel.mineBlocks.add(new BlockHarvestPower(BlockPurgatoryGrass.blockID, 0.0F));
  126.       ToolBase.Shovel.mineBlocks.add(new BlockHarvestPower(Sludge.blockID, 0.0F));
  127.       ToolBase.Pickaxe.mineBlocks.add(new BlockHarvestPower(PurgatoryStone.blockID, 0.0F));
  128.       ToolBase.Pickaxe.mineBlocks.add(new BlockHarvestPower(PurgatoryCobble.blockID, 0.0F));
  129.       ToolBase.Pickaxe.mineBlocks.add(new BlockHarvestPower(BloodyCobble.blockID, 0.0F));
  130.       ToolBase.Axe.mineBlocks.add(new BlockHarvestPower(PurgatoryWood.blockID, 1.0F));
  131.      
  132.       ModLoader.AddRecipe(new ItemStack(Block.portal, 1), new Object[] {
  133.                   "#", Character.valueOf('#'), Block.dirt
  134.               });
  135.        
  136.      
  137.      
  138.       ModLoader.AddRecipe(new ItemStack(mod_Purgatory.PurgatoryPlanks, 2), new Object[] {
  139.               "#", Character.valueOf('#'), mod_Purgatory.PurgatoryWood
  140.           });
  141.       ModLoader.AddRecipe(new ItemStack(Block.workbench, 1), new Object[] {
  142.               "##", "##", Character.valueOf('#'), mod_Purgatory.PurgatoryPlanks
  143.           });
  144.       ModLoader.AddRecipe(new ItemStack(Item.stick, 2), new Object[] {
  145.               "#", "#", Character.valueOf('#'), mod_Purgatory.PurgatoryPlanks
  146.           });
  147.    }
  148.  
  149.    
  150.  
  151.    public void GenerateSurface(World var1, Random var2, int var3, int var4) {
  152.       int var5 = var1.worldInfo.getSpawnX();
  153.       int var6 = var1.worldInfo.getSpawnZ();
  154.       if(var5 != 0 && var6 != 0 && var5 >= var3 && var5 <= var3 + 16 && var6 >= var4 && var6 <= var4 + 16) {
  155.          System.out.println("Making supply chest at " + var5 + ", " + var6);
  156.          int var7 = var5 + var2.nextInt(8) - var2.nextInt(8);
  157.          int var8 = var6 + var2.nextInt(8) - var2.nextInt(8);
  158.          int var9 = var1.findTopSolidBlock(var7, var8);
  159.          var1.setBlockWithNotify(var7, var9, var8, Block.chest.blockID);
  160.          TileEntityChest var10 = (TileEntityChest)var1.getBlockTileEntity(var7, var9, var8);
  161.          if(var10 != null && var10.getSizeInventory() > 0) {
  162.             ItemStack var11 = new ItemStack(Item.redstone, 64);
  163.             var10.setInventorySlotContents(0, var11);
  164.             ItemStack var12 = new ItemStack(Item.pickaxeDiamond);
  165.             var10.setInventorySlotContents(1, var12);
  166.             ItemStack var13 = new ItemStack(Item.shovelDiamond);
  167.             var10.setInventorySlotContents(2, var13);
  168.             ItemStack var14 = new ItemStack(Item.axeDiamond);
  169.             var10.setInventorySlotContents(3, var14);
  170.             ItemStack var15 = new ItemStack(Item.swordDiamond);
  171.             var10.setInventorySlotContents(4, var15);
  172.             ItemStack var16 = new ItemStack(Block.portal, 14);
  173.             var10.setInventorySlotContents(5, var16);
  174.             ItemStack var17 = new ItemStack(Item.stick, 64);
  175.             var10.setInventorySlotContents(6, var17);
  176.             ItemStack var18 = new ItemStack(Block.dirt, 64);
  177.             var10.setInventorySlotContents(7, var18);
  178.             ItemStack var19 = new ItemStack(Block.tnt, 64);
  179.             var10.setInventorySlotContents(8, var19);
  180.          }
  181.       }
  182.  
  183.    }
  184.  
  185.    public boolean OnTickInGame(Minecraft var1) {
  186.       if(!var1.theWorld.multiplayerWorld && var1.thePlayer != null && (double)var1.thePlayer.timeInPortal > 0.8D && var1.thePlayer.timeUntilPortal == 0) {
  187.          this.interceptPortal(var1);
  188.       }
  189.  
  190.       if(var1.thePlayer != null && var1.thePlayer.dimension == 8 && !(var1.theWorld.worldProvider instanceof WorldProviderPurgatory)) {
  191.          this.sendToPurgatory(var1);
  192.       }
  193.  
  194.       return true;
  195.    }
  196.  
  197.    public boolean OnTickInGUI(Minecraft var1) {
  198.       if(var1.thePlayer != null && var1.thePlayer.dimension == 8 && !(var1.theWorld.worldProvider instanceof WorldProviderPurgatory)) {
  199.          this.sendToPurgatory(var1);
  200.       }
  201.  
  202.       return true;
  203.    }
  204.  
  205.    public void interceptPortal(Minecraft var1) {
  206.       ItemStack var2 = var1.thePlayer.inventory.getCurrentItem();
  207.       if(var1.thePlayer.dimension == 8) {
  208.          this.usePortal(var1, 0);
  209.       } else if(var1.thePlayer.dimension == 0 && var2 != null && var2.itemID == (byte)Block.dirt.blockID) {
  210.          this.usePortal(var1, 8);
  211.       }
  212.  
  213.    }
  214.  
  215.    public void usePortal(Minecraft var1, int var2) {
  216.       var1.thePlayer.timeUntilPortal = 10;
  217.       var1.thePlayer.timeInPortal = 0.0F;
  218.       if(var2 == 0) {
  219.          this.sendToSurface(var1);
  220.       } else if(var2 == 8) {
  221.          this.sendToPurgatory(var1);
  222.       }
  223.  
  224.       if(var1.thePlayer.isEntityAlive()) {
  225.          var1.thePlayer.setLocationAndAngles(var1.thePlayer.posX, var1.thePlayer.posY, var1.thePlayer.posZ, var1.thePlayer.rotationYaw, var1.thePlayer.rotationPitch);
  226.          var1.theWorld.updateEntityWithOptionalForce(var1.thePlayer, false);
  227.          (new Teleporter()).func_4107_a(var1.theWorld, var1.thePlayer);
  228.       }
  229.  
  230.    }
  231.  
  232.    public void sendToPurgatory(Minecraft var1) {
  233.       var1.theWorld.setEntityDead(var1.thePlayer);
  234.       var1.thePlayer.isDead = false;
  235.       double var2 = var1.thePlayer.posY;
  236.       if(var1.thePlayer.dimension == 0) {
  237.          var2 *= 0.25D;
  238.       }
  239.  
  240.       var1.thePlayer.setLocationAndAngles(var1.thePlayer.posX, var2, var1.thePlayer.posZ, var1.thePlayer.rotationYaw, var1.thePlayer.rotationPitch);
  241.       if(var1.thePlayer.isEntityAlive()) {
  242.          var1.theWorld.updateEntityWithOptionalForce(var1.thePlayer, false);
  243.       }
  244.  
  245.       PurgatoryWorld var4 = null;
  246.       var4 = new PurgatoryWorld(var1.theWorld, new WorldProviderPurgatory());
  247.       var1.changeWorld(var4, "Entering Purgatory", var1.thePlayer);
  248.       var1.thePlayer.worldObj = var1.theWorld;
  249.       var1.thePlayer.dimension = 8;
  250.    }
  251.  
  252.    public void sendToSurface(Minecraft var1) {
  253.       var1.theWorld.setEntityDead(var1.thePlayer);
  254.       var1.thePlayer.isDead = false;
  255.       double var2 = var1.thePlayer.posY;
  256.       if(var1.thePlayer.dimension == 0) {
  257.          var2 *= 4.0D;
  258.       }
  259.  
  260.       var1.thePlayer.setLocationAndAngles(var1.thePlayer.posX, var2, var1.thePlayer.posZ, var1.thePlayer.rotationYaw, var1.thePlayer.rotationPitch);
  261.       if(var1.thePlayer.isEntityAlive()) {
  262.          var1.theWorld.updateEntityWithOptionalForce(var1.thePlayer, false);
  263.       }
  264.  
  265.       World var4 = null;
  266.       var4 = new World(var1.theWorld, WorldProvider.getProviderForDimension(0));
  267.       var1.changeWorld(var4, "Leaving Purgatory", var1.thePlayer);
  268.       var1.thePlayer.worldObj = var1.theWorld;
  269.       var1.thePlayer.dimension = 0;
  270.    }
  271.  
  272.    public String Version() {
  273.           return "Beta 1.7.3.TheZyga 'Purgatory'";
  274.        }
  275. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement