Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.examplemod;
- import java.util.ArrayList;
- import java.util.List;
- import scala.actors.threadpool.Arrays;
- import net.minecraft.block.Block;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.entity.EntityClientPlayerMP;
- import net.minecraft.init.Blocks;
- import net.minecraft.item.Item;
- import net.minecraft.util.IChatComponent;
- import net.minecraftforge.common.MinecraftForge;
- import net.minecraftforge.event.ServerChatEvent;
- import net.minecraftforge.oredict.OreDictionary;
- import net.minecraftforge.oredict.ShapelessOreRecipe;
- import cpw.mods.fml.common.FMLCommonHandler;
- import cpw.mods.fml.common.FMLLog;
- import cpw.mods.fml.common.Mod;
- import cpw.mods.fml.common.Mod.EventHandler;
- import cpw.mods.fml.common.event.FMLInitializationEvent;
- import cpw.mods.fml.common.eventhandler.SubscribeEvent;
- import cpw.mods.fml.common.gameevent.TickEvent;
- import cpw.mods.fml.common.registry.GameRegistry;
- import cpw.mods.fml.relauncher.Side;
- import cpw.mods.fml.relauncher.SideOnly;
- @SuppressWarnings("unused")
- @Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION, acceptableRemoteVersions = "*")
- public class ExampleMod {
- public static final String MODID = "examplemod";
- public static final String VERSION = "1.0";
- private boolean enabled = false;
- private int counter = 0;
- private double targetX = 25;
- private double targetZ = 575;
- private List<int[]> targets = new ArrayList<int[]>();// Arrays.asList({ 24,
- // 575, 0 }, { 24,
- // 533, 1 });
- private int targetCounter = 0;
- @EventHandler
- @SideOnly(Side.CLIENT)
- public void init(FMLInitializationEvent event) {
- MinecraftForge.EVENT_BUS.register(this);
- FMLCommonHandler.instance().bus().register(this);
- FMLLog.getLogger().info("Initializing Walker!");
- // dirtMond();
- // FMLLog.getLogger().info("DIRT >> Set all end");
- }
- // Called when the client ticks.
- @SubscribeEvent
- @SideOnly(Side.CLIENT)
- public void onClientTick(TickEvent.ClientTickEvent event) {
- FMLLog.getLogger().info("Ticking!");
- try {
- if (!enabled) {
- return;
- }
- // FMLLog.getLogger().info("Moving and rotating the player!");
- EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
- if (counter % 10 == 0) {
- double distance = Math.sqrt((Math.abs(targetX - player.posX)) * (Math.abs(targetX - player.posX))
- + (Math.abs(targetZ - player.posZ)) * (Math.abs(targetZ - player.posZ)));
- // FMLLog.getLogger().info("Distance to position: " + distance);
- if (distance < 0.25) {
- counter = 0;
- targetCounter = (targetCounter + 1) % targets.size();
- targetX = targets.get(targetCounter)[0] + 0.5;
- targetZ = targets.get(targetCounter)[1] + 0.5;
- player.inventory.currentItem = targets.get(targetCounter)[2];
- }
- float answer = (float) Math.toDegrees(Math.atan2((targetZ - player.posZ), (targetX - player.posX))) - 90;
- // FMLLog.getLogger().info("Angle: " + answer);
- player.setAngles((float) ((answer - player.rotationYaw) / 0.15), (float) (player.rotationPitch / 0.15));
- }
- counter++;
- player.moveEntityWithHeading(0, 0.2f);
- // player.setAngles((float) (45 / 0.15), (float)
- // (player.rotationPitch /
- // 0.15));
- // FMLLog.getLogger().info("Moving and rotating the player!");
- } catch (Exception e) {
- enabled = false;
- }
- }
- @SubscribeEvent
- @SideOnly(Side.CLIENT)
- public void onChat(ServerChatEvent event) {
- FMLLog.getLogger().info("Got ServerChatEvent!");
- // #-1049:40,-1049:20,-1030:20,-1030:40
- try {
- if (event.message.equalsIgnoreCase("stop")) {
- FMLLog.getLogger().info("Stopping with moving");
- enabled = false;
- return;
- }
- if (event.message.equalsIgnoreCase("start")) {
- FMLLog.getLogger().info("Starting with moving!");
- targetCounter = 0;
- targetX = targets.get(targetCounter)[0] + 0.5;
- targetZ = targets.get(targetCounter)[1] + 0.5;
- Minecraft.getMinecraft().thePlayer.inventory.currentItem = targets.get(targetCounter)[2];
- enabled = true;
- return;
- }
- if (event.message.startsWith("#")) {
- FMLLog.getLogger().info("Setting new locations!");
- targets.clear();
- String message = event.message.substring(1);
- String[] locations = message.split(",");
- for (String location : locations) {
- String[] parts = location.split(":");
- int[] par = new int[3];
- par[0] = Integer.parseInt(parts[0]);
- par[1] = Integer.parseInt(parts[1]);
- par[2] = Integer.parseInt(parts[2]);
- targets.add(par);
- }
- FMLLog.getLogger().info("Set " + targets.size() + " locations");
- if (targets.size() == 0) {
- targets.add(new int[] { 0, 0, 0 });
- }
- }
- } catch (Exception e) {
- FMLLog.getLogger().catching(e);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement