package matteroverdrive.commands;
import matteroverdrive.MatterOverdrive;
import matteroverdrive.world.MOWorldGenBuilding;
import matteroverdrive.world.WeightedRandomMOWorldGenBuilding;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Simeon on 1/5/2016.
*/
public class WorldGenCommands extends CommandBase
{
@Override
public String getCommandName()
{
return "mo_gen";
}
@Override
public String getCommandUsage(ICommandSender p_71518_1_)
{
return "mo_gen <command> <structure name> <options>";
}
@Override
public void processCommand(ICommandSender commandSender, String[] parameters)
{
EntityPlayer entityPlayer = null;
if (parameters.length >= 4)
{
entityPlayer = getPlayer(commandSender,parameters[3]);
}else if (commandSender instanceof EntityPlayer)
{
entityPlayer = (EntityPlayer)commandSender;
}
boolean forceGeneration = false;
if (parameters.length >= 3)
{
forceGeneration = parameters[2].contains("f");
}
if (parameters.length >= 1)
{
if (parameters[0].equalsIgnoreCase("generate"))
{
if (parameters.length >= 2 && entityPlayer != null)
{
for (WeightedRandomMOWorldGenBuilding entry : MatterOverdrive.moWorld.worldGen.buildings)
{
if (entry.worldGenBuilding.getName().equalsIgnoreCase(parameters[1]))
{
MOWorldGenBuilding.WorldGenBuildingWorker worker = MatterOverdrive.moWorld.worldGen.startBuildingGeneration(entry.worldGenBuilding,(int) entityPlayer.posX,(int) entityPlayer.posY,(int) entityPlayer.posZ,entityPlayer.getRNG(),commandSender.getEntityWorld(),null,null,forceGeneration);
if (worker != null)
{
worker.setPlaceNotify(2);
}
}
}
}
}
}
}
@Override
public List addTabCompletionOptions(ICommandSender commandSender, String[] parameters)
{
List<String> commands = new ArrayList<>();
if (parameters.length == 1)
{
commands.add("generate");
}else if (parameters.length == 2)
{
for (WeightedRandomMOWorldGenBuilding entry : MatterOverdrive.moWorld.worldGen.buildings)
{
commands.add(entry.worldGenBuilding.getName());
}
}else if (parameters.length == 4)
{
for (Object entityPlayer : commandSender.getEntityWorld().playerEntities)
{
commands.add(((EntityPlayer)entityPlayer).getCommandSenderName());
}
}
return commands;
}
}