Advertisement
Timtower

Untitled

Sep 2nd, 2015
780
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.72 KB | None | 0 0
  1. package com.example.examplemod;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import scala.actors.threadpool.Arrays;
  7. import net.minecraft.block.Block;
  8. import net.minecraft.client.Minecraft;
  9. import net.minecraft.client.entity.EntityClientPlayerMP;
  10. import net.minecraft.init.Blocks;
  11. import net.minecraft.item.Item;
  12. import net.minecraft.util.IChatComponent;
  13. import net.minecraftforge.common.MinecraftForge;
  14. import net.minecraftforge.event.ServerChatEvent;
  15. import net.minecraftforge.oredict.OreDictionary;
  16. import net.minecraftforge.oredict.ShapelessOreRecipe;
  17. import cpw.mods.fml.common.FMLCommonHandler;
  18. import cpw.mods.fml.common.FMLLog;
  19. import cpw.mods.fml.common.Mod;
  20. import cpw.mods.fml.common.Mod.EventHandler;
  21. import cpw.mods.fml.common.event.FMLInitializationEvent;
  22. import cpw.mods.fml.common.eventhandler.SubscribeEvent;
  23. import cpw.mods.fml.common.gameevent.TickEvent;
  24. import cpw.mods.fml.common.registry.GameRegistry;
  25. import cpw.mods.fml.relauncher.Side;
  26. import cpw.mods.fml.relauncher.SideOnly;
  27.  
  28. @SuppressWarnings("unused")
  29. @Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION, acceptableRemoteVersions = "*")
  30. public class ExampleMod {
  31.     public static final String MODID = "examplemod";
  32.     public static final String VERSION = "1.0";
  33.     private boolean enabled = false;
  34.     private int counter = 0;
  35.     private double targetX = 25;
  36.     private double targetZ = 575;
  37.     private List<int[]> targets = new ArrayList<int[]>();// Arrays.asList({ 24,
  38.                                                             // 575, 0 }, { 24,
  39.                                                             // 533, 1 });
  40.     private int targetCounter = 0;
  41.  
  42.     @EventHandler
  43.     @SideOnly(Side.CLIENT)
  44.     public void init(FMLInitializationEvent event) {
  45.         MinecraftForge.EVENT_BUS.register(this);
  46.         FMLCommonHandler.instance().bus().register(this);
  47.         FMLLog.getLogger().info("Initializing Walker!");
  48.         // dirtMond();
  49.         // FMLLog.getLogger().info("DIRT >> Set all end");
  50.     }
  51.  
  52.     // Called when the client ticks.
  53.     @SubscribeEvent
  54.     @SideOnly(Side.CLIENT)
  55.     public void onClientTick(TickEvent.ClientTickEvent event) {
  56.         FMLLog.getLogger().info("Ticking!");
  57.         try {
  58.             if (!enabled) {
  59.                 return;
  60.             }
  61.             // FMLLog.getLogger().info("Moving and rotating the player!");
  62.             EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
  63.             if (counter % 10 == 0) {
  64.                 double distance = Math.sqrt((Math.abs(targetX - player.posX)) * (Math.abs(targetX - player.posX))
  65.                         + (Math.abs(targetZ - player.posZ)) * (Math.abs(targetZ - player.posZ)));
  66.                 // FMLLog.getLogger().info("Distance to position: " + distance);
  67.                 if (distance < 0.25) {
  68.                     counter = 0;
  69.                     targetCounter = (targetCounter + 1) % targets.size();
  70.                     targetX = targets.get(targetCounter)[0] + 0.5;
  71.                     targetZ = targets.get(targetCounter)[1] + 0.5;
  72.                     player.inventory.currentItem = targets.get(targetCounter)[2];
  73.                 }
  74.                 float answer = (float) Math.toDegrees(Math.atan2((targetZ - player.posZ), (targetX - player.posX))) - 90;
  75.                 // FMLLog.getLogger().info("Angle: " + answer);
  76.                 player.setAngles((float) ((answer - player.rotationYaw) / 0.15), (float) (player.rotationPitch / 0.15));
  77.             }
  78.             counter++;
  79.             player.moveEntityWithHeading(0, 0.2f);
  80.             // player.setAngles((float) (45 / 0.15), (float)
  81.             // (player.rotationPitch /
  82.             // 0.15));
  83.             // FMLLog.getLogger().info("Moving and rotating the player!");
  84.         } catch (Exception e) {
  85.             enabled = false;
  86.         }
  87.     }
  88.  
  89.     @SubscribeEvent
  90.     @SideOnly(Side.CLIENT)
  91.     public void onChat(ServerChatEvent event) {
  92.         FMLLog.getLogger().info("Got ServerChatEvent!");
  93.         // #-1049:40,-1049:20,-1030:20,-1030:40
  94.         try {
  95.             if (event.message.equalsIgnoreCase("stop")) {
  96.                 FMLLog.getLogger().info("Stopping with moving");
  97.                 enabled = false;
  98.                 return;
  99.             }
  100.             if (event.message.equalsIgnoreCase("start")) {
  101.                 FMLLog.getLogger().info("Starting with moving!");
  102.                 targetCounter = 0;
  103.                 targetX = targets.get(targetCounter)[0] + 0.5;
  104.                 targetZ = targets.get(targetCounter)[1] + 0.5;
  105.                 Minecraft.getMinecraft().thePlayer.inventory.currentItem = targets.get(targetCounter)[2];
  106.                 enabled = true;
  107.                 return;
  108.             }
  109.             if (event.message.startsWith("#")) {
  110.                 FMLLog.getLogger().info("Setting new locations!");
  111.                 targets.clear();
  112.                 String message = event.message.substring(1);
  113.                 String[] locations = message.split(",");
  114.                 for (String location : locations) {
  115.                     String[] parts = location.split(":");
  116.                     int[] par = new int[3];
  117.                     par[0] = Integer.parseInt(parts[0]);
  118.                     par[1] = Integer.parseInt(parts[1]);
  119.                     par[2] = Integer.parseInt(parts[2]);
  120.                     targets.add(par);
  121.                 }
  122.                 FMLLog.getLogger().info("Set " + targets.size() + " locations");
  123.                 if (targets.size() == 0) {
  124.                     targets.add(new int[] { 0, 0, 0 });
  125.                 }
  126.             }
  127.         } catch (Exception e) {
  128.             FMLLog.getLogger().catching(e);
  129.         }
  130.     }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement