-
Notifications
You must be signed in to change notification settings - Fork 497
/
BoardRobotPickerNBT.java
executable file
·101 lines (77 loc) · 2.77 KB
/
BoardRobotPickerNBT.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.core.robots.boards;
import java.util.List;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import buildcraft.api.boards.IBoardParameter;
import buildcraft.api.boards.RedstoneBoardRegistry;
import buildcraft.api.boards.RedstoneBoardRobot;
import buildcraft.api.boards.RedstoneBoardRobotNBT;
import buildcraft.api.robots.EntityRobotBase;
import buildcraft.core.robots.EntityRobot;
import buildcraft.core.utils.NBTUtils;
import buildcraft.core.utils.StringUtils;
public final class BoardRobotPickerNBT extends RedstoneBoardRobotNBT {
public static BoardRobotPickerNBT instance = new BoardRobotPickerNBT();
public IIcon icon;
private BoardRobotPickerNBT() {
}
@Override
public String getID() {
return "buildcraft:boardRobotPicker";
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean advanced) {
list.add(StringUtils.localize("buildcraft.boardRobotPicker"));
NBTTagCompound nbt = NBTUtils.getItemData(stack);
int parameterNumber = getParameterNumber(nbt);
if (parameterNumber > 0) {
list.add(parameterNumber + " " + StringUtils.localize("buildcraft.boardDetail.parameters"));
}
list.add(StringUtils.localize("buildcraft.boardDetail.range") + ": " + nbt.getInteger("range"));
}
@Override
public RedstoneBoardRobot create(NBTTagCompound nbt, EntityRobotBase object) {
return new BoardRobotPicker(object, nbt);
}
@Override
public IIcon getIcon(NBTTagCompound nbt) {
return icon;
}
@Override
public void registerIcons(IIconRegister iconRegister) {
icon = iconRegister.registerIcon("buildcraft:board_green");
}
@Override
public void createRandomBoard(NBTTagCompound nbt) {
int parameterNumber = (int) Math.floor(nextFloat(3) * 5);
int range = (int) Math.floor(nextFloat(10) * 500) + 10;
if (parameterNumber > 0) {
IBoardParameter[] parameters = new IBoardParameter[parameterNumber];
for (int i = 0; i < parameterNumber; ++i) {
parameters[i] = RedstoneBoardRegistry.instance.createParameterStack();
}
setParameters(nbt, parameters);
}
nbt.setInteger("range", range);
}
@Override
public void createDefaultBoard(NBTTagCompound nbt) {
nbt.setInteger("range", 250);
}
@Override
public ResourceLocation getRobotTexture() {
return EntityRobot.ROBOT_TRANSPORT;
}
}