2
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.7 KiB
Java

package com.zivilon.cinder_loe.command;
import com.zivilon.cinder_loe.carriage.CarriageDestination;
import com.zivilon.cinder_loe.carriage.CarriageDestinationsData;
import com.zivilon.cinder_loe.network.PacketOpenCarriageGui;
import lotr.common.network.LOTRPacketHandler;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.List;
public class CommandOpenCarriageMenu extends CommandBase {
@Override
public String getCommandName() {
return "open_carriage_menu";
}
@Override
public String getCommandUsage(ICommandSender sender) {
return "/open_carriage_menu";
}
@Override
public void processCommand(ICommandSender sender, String[] args) {
if (!(sender instanceof EntityPlayerMP)) {
throw new CommandException("Must be run by a player.");
}
EntityPlayerMP player = (EntityPlayerMP) sender;
World world = player.worldObj;
CarriageDestinationsData data = CarriageDestinationsData.get(world);
List<CarriageDestination> nearest = data.getNearestFour(player.posX, player.posZ);
List<String> names = new ArrayList<>();
List<Integer> costs = new ArrayList<>();
for (CarriageDestination dest : nearest) {
double dist = Math.sqrt(Math.pow(dest.x - player.posX, 2) + Math.pow(dest.z - player.posZ, 2));
int cost = Math.max(1, (int)(dist / 50));
names.add(dest.name);
costs.add(cost);
}
LOTRPacketHandler.networkWrapper.sendTo(new PacketOpenCarriageGui(names, costs), player);
}
}