Guest User

Untitled

a guest
Aug 19th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.09 KB | None | 0 0
  1. package net.minecraft.src;
  2. import java.util.*;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5.  
  6.  
  7. public class mod_TreeSpirit extends BaseMod
  8. {
  9. public mod_TreeSpirit()
  10. {
  11. //Load config
  12. //Add config here
  13.  
  14. //Options
  15. ModLoader.SetInGameHook(this, true, true);
  16.  
  17. //Register
  18. ModLoader.RegisterBlock(heartLog);
  19. ModLoader.RegisterBlock(heartSapling, ItemModHeartSapling.class);
  20. ModLoader.RegisterBlock(heartTreeLeave);
  21. ModLoader.RegisterBlock(heartTreeLog);
  22.  
  23. //Names
  24. ModLoader.AddName(heartLog, "Heart Log");
  25. ModLoader.AddName(heartSapling, "Heart Tree Sapling");
  26.  
  27. //Recipe
  28. ModLoader.AddShapelessRecipe(new ItemStack(heartSapling, 0), new Object[] {
  29. new ItemStack(Block.sapling, 1, -1), new ItemStack(Item.dyePowder, 1, 11)
  30. });
  31. ModLoader.AddRecipe(new ItemStack(Item.dyePowder, 2, 15), new Object[] {
  32. "Y", "X", "#", Character.valueOf('X'), Block.mushroomRed, Character.valueOf('Y'), Block.mushroomBrown, Character.valueOf('#'), Block.dirt
  33. });
  34. ModLoader.AddRecipe(new ItemStack(Item.dyePowder, 2, 15), new Object[] {
  35. "X", "Y", "#", Character.valueOf('X'), Block.mushroomRed, Character.valueOf('Y'), Block.mushroomBrown, Character.valueOf('#'), Block.dirt
  36. });
  37. ModLoader.AddRecipe(new ItemStack(Item.shears, 1), new Object[] {
  38. "X X", " X ", "# #", Character.valueOf('X'), Block.stone, Character.valueOf('#'), Item.stick
  39. });
  40. }
  41.  
  42. //Version
  43. public String Version()
  44. {
  45. return "1.8_01";
  46. }
  47.  
  48. //Update
  49.  
  50. @Override public boolean OnTickInGame(float tick, net.minecraft.client.Minecraft game)
  51. {
  52. if((name == null || !name.equalsIgnoreCase(ModLoader.getMinecraftInstance().theWorld.getWorldInfo().getWorldName())) && ModLoader.getMinecraftInstance().theWorld != null)
  53. {
  54. name = ModLoader.getMinecraftInstance().theWorld.getWorldInfo().getWorldName();
  55. loaded = false;
  56. heartPlaced = false;
  57. }
  58.  
  59. if(ModLoader.getMinecraftInstance().theWorld != null && !loaded)
  60. {
  61. save = new Save((net.minecraft.client.Minecraft.getMinecraftDir()).getAbsolutePath() + "\\" + name + ".ttsd");
  62. Load();
  63. }
  64.  
  65. if(mustSave && loaded)
  66. {
  67. Save();
  68. }
  69.  
  70. if(ModLoader.getMinecraftInstance().thePlayer != null && heartPlaced)
  71. {
  72. int posX = (int)ModLoader.getMinecraftInstance().thePlayer.posX;
  73. int posY = (int)ModLoader.getMinecraftInstance().thePlayer.posY;
  74. int posZ = (int)ModLoader.getMinecraftInstance().thePlayer.posZ;
  75. int size = 2;
  76. boolean nearWood = checkWood(posX - size, posY - (size + 1), posZ - size, size * 2 + 1);
  77. if(!nearWood)
  78. {
  79. ModLoader.getMinecraftInstance().thePlayer.attackEntityFrom(DamageSource.field_35545_l, 2);
  80. }
  81. }
  82. return true;
  83. }
  84.  
  85. public void Load()
  86. {
  87. if(save.DoesExist("heartX") && save.DoesExist("heartY") && save.DoesExist("heartZ"))
  88. {
  89. int x = save.GetInt("heartX");
  90. int y = save.GetInt("heartY");
  91. int z = save.GetInt("heartZ");
  92. heartPos = new ChunkCoordinates(x, y, z);
  93. }
  94. if(save.DoesExist("heartPlaced"))
  95. {
  96. heartPlaced = save.GetBoolean("heartPlaced");
  97. }
  98. loaded = true;
  99. }
  100.  
  101. public void Save()
  102. {
  103. if(!save.DoesExist("heartX"))
  104. {
  105. save.AddField("heartX", String.valueOf((int)heartPos.posX));
  106. } else
  107. {
  108. save.SetValue("heartX", String.valueOf((int)heartPos.posX));
  109. }
  110. if(!save.DoesExist("heartY"))
  111. {
  112. save.AddField("heartY", String.valueOf((int)heartPos.posY));
  113. } else
  114. {
  115. save.SetValue("heartY", String.valueOf((int)heartPos.posY));
  116. }
  117. if(!save.DoesExist("heartZ"))
  118. {
  119. save.AddField("heartZ", String.valueOf((int)heartPos.posZ));
  120. } else
  121. {
  122. save.SetValue("heartZ", String.valueOf((int)heartPos.posZ));
  123. }
  124. if(!save.DoesExist("heartPlaced"))
  125. {
  126. save.AddField("heartPlaced", String.valueOf(heartPlaced));
  127. } else
  128. {
  129. save.SetValue("heartPlaced", String.valueOf(heartPlaced));
  130. }
  131. save.Save();
  132. mustSave = false;
  133. }
  134.  
  135. public boolean checkWood(int posX, int posY, int posZ, int range)
  136. {
  137. boolean result = false;
  138. for(int x = 0; x < range; x++)
  139. {
  140. for(int y = 0; y < range + 1; y++)
  141. {
  142. for(int z = 0; z < range; z++)
  143. {
  144. if (isWood(posX + x, posY + y, posZ + z))
  145. {
  146. result = true;
  147. }
  148. }
  149. }
  150. }
  151. return result;
  152. }
  153.  
  154. public static boolean isWood(int posX, int posY, int posZ)
  155. {
  156. if (ModLoader.getMinecraftInstance().theWorld.getBlockMaterial(posX, posY, posZ) == Material.wood || ModLoader.getMinecraftInstance().theWorld.getBlockMaterial(posX, posY, posZ) == Material.leaves)
  157. {
  158. return true;
  159. }
  160. return false;
  161. }
  162.  
  163. public static void HeartDestroyed()
  164. {
  165. if(heartPlaced == true)
  166. {
  167. ModLoader.getMinecraftInstance().thePlayer.attackEntityFrom(DamageSource.field_35548_k, 9999);
  168. heartPlaced = false;
  169. heartPos.posX = 0;
  170. heartPos.posY = 0;
  171. heartPos.posZ = 0;
  172. mustSave = true;
  173. }
  174. }
  175.  
  176. // Blocks
  177. public static final Block heartLog = new BlockModHeartLog(180, ModLoader.addOverride("/terrain.png", "/mod/heartLogBase.png"), ModLoader.addOverride("/terrain.png", "/mod/heartLogSide.png")).setHardness(3F).setResistance(7.5F).setStepSound(Block.soundWoodFootstep).setLightValue(1.0F).setBlockName("heartLog");
  178. public static final Block heartSapling = new BlockModHeartSapling(181, ModLoader.addOverride("/terrain.png", "/mod/HeartTreeSapling.png")).setHardness(0.5F).setResistance(0.5F).setLightValue(1.0F).setBlockName("heartSapling");
  179. public static final Block heartTreeLeave = new BlockModSpiritLeave(182, ModLoader.addOverride("/terrain.png", "/mod/Leave3.png")).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setLightValue(0.25F).setBlockName("heartTreeLeave");
  180. public static final Block heartTreeLog = new BlockModSpiritLog(183, 20).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setBlockName("heartTreeLog");
  181.  
  182. // Variables
  183. public static ChunkCoordinates heartPos;
  184. public static boolean heartPlaced = false;
  185. public static boolean loaded = false;
  186. public static boolean mustSave = false;
  187. public static String name;
  188.  
  189. // Save
  190. public static Save save;
  191. public static Save conf;
  192. }
Add Comment
Please, Sign In to add comment