use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.
the class TooltipHandler method setupTooltips.
public static void setupTooltips(ItemTooltipEvent event) {
ItemStack stack = event.getItemStack();
Item item = stack.getItem();
if (item instanceof Seed) {
Seed seed = (Seed) item;
EntityPlayer player = event.getEntityPlayer();
if (player != null) {
World world = player.world;
if (SeasonHelper.getSeasonValue(world, BlockPos.ORIGIN) != null) {
Species species = seed.getSpecies(stack);
if (species == null || !species.isValid()) {
return;
}
int flags = seed.getSpecies(stack).getSeasonalTooltipFlags(world.provider.getDimension());
applySeasonalTooltips(event.getToolTip(), flags);
}
}
}
}
use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.
the class CommandCreateStaff method execute.
@Override
public void execute(World world, ICommandSender sender, String[] args) throws CommandException {
if (args.length < 4) {
throw new WrongUsageException("commands.dynamictrees.createstaff.usage");
}
BlockPos pos = CommandBase.parseBlockPos(sender, args, 1, false);
ItemStack stack = new ItemStack(ModItems.treeStaff, 1, 0);
ModItems.treeStaff.setSpecies(stack, TreeRegistry.findSpeciesSloppy("oak"));
for (int arg = 0; arg < args.length; arg++) {
switch(arg) {
case 4:
Species species = TreeRegistry.findSpeciesSloppy(args[4]);
if (species == Species.NULLSPECIES) {
throw new CommandException("commands.dynamictrees.createstaff.specieserror", args[4]);
}
ModItems.treeStaff.setSpecies(stack, species);
break;
case 5:
ModItems.treeStaff.setCode(stack, args[5]);
break;
case 6:
try {
Color.decode(args[6]).getRGB();
ModItems.treeStaff.setColor(stack, args[6]);
} catch (NumberFormatException e) {
throw new CommandException("commands.dynamictrees.createstaff.colorerror", args[6]);
}
break;
case 7:
if ("true".equals(args[7]) || "false".equals(args[7])) {
boolean readonly = "true".equals(args[7]);
ModItems.treeStaff.setReadOnly(stack, readonly);
} else {
throw new CommandException("commands.dynamictrees.createstaff.readonlyerror", args[7]);
}
break;
case 8:
try {
int maxUses = Integer.decode(args[8]);
if (maxUses <= 0) {
throw new CommandException("commands.dynamictrees.createstaff.maxuseserror", args[8]);
}
ModItems.treeStaff.setMaxUses(stack, maxUses);
ModItems.treeStaff.setUses(stack, maxUses);
} catch (NumberFormatException e) {
throw new CommandException("commands.dynamictrees.createstaff.maxuseserror", args[8]);
}
}
}
ItemUtils.spawnItemStack(world, pos, stack, true);
}
use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.
the class CommandCreateTransformPotion method execute.
@Override
public void execute(World world, ICommandSender sender, String[] args) throws CommandException {
if (args.length < 4) {
throw new WrongUsageException("commands.dynamictrees.createtransformpotion.usage");
}
BlockPos pos = BlockPos.ORIGIN;
Species species = null;
for (int arg = 0; arg < args.length; arg++) {
switch(arg) {
case 3:
pos = CommandBase.parseBlockPos(sender, args, 1, false);
break;
case 4:
species = TreeRegistry.findSpeciesSloppy(args[4]);
if (species == Species.NULLSPECIES) {
throw new CommandException("commands.dynamictrees.setree.specieserror", args[4]);
}
break;
}
}
final DendroPotion dendroPotion = ModItems.dendroPotion;
// Create the transform potion.
final ItemStack dendroPotionStack = new ItemStack(dendroPotion, 1, DendroPotion.DendroPotionType.TRANSFORM.getIndex());
// Tell it to set the target species to the given species.
dendroPotion.setTargetSpecies(dendroPotionStack, species);
// Spawn potion in the world.
ItemUtils.spawnItemStack(world, pos, dendroPotionStack, true);
}
use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.
the class CommandGetTree method execute.
@Override
public void execute(World world, ICommandSender sender, String[] args) throws CommandException {
if (args.length < 4) {
throw new WrongUsageException("commands.dynamictrees.getree.usage");
}
BlockPos pos = CommandBase.parseBlockPos(sender, args, 1, false);
Species species = TreeHelper.getBestGuessSpecies(world, pos);
String code = TreeHelper.getJoCode(world, pos, species).map(JoCode::toString).orElse("?");
sender.sendMessage((new TextComponentString(species.toString())));
sender.sendMessage((new TextComponentString(code)));
}
use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.
the class WailaBranchHandler method getWailaBody.
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> tooltip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
if (WailaOther.invalid) {
lastPos = BlockPos.ORIGIN;
lastSpecies = Species.NULLSPECIES;
lastVolume = 0;
WailaOther.invalid = false;
}
NBTTagCompound nbtData = accessor.getNBTData();
BlockPos pos = accessor.getPosition();
Species species = Species.NULLSPECIES;
// Attempt to get species from server via NBT data
if (nbtData.hasKey("species")) {
species = TreeRegistry.findSpecies(new ResourceLocation(nbtData.getString("species")));
}
// Attempt to get species by checking if we're still looking at the same block
if (species == Species.NULLSPECIES && lastPos.equals(pos)) {
species = lastSpecies;
}
// Attempt to get species from the world as a last resort as the operation can be rather expensive
if (species == Species.NULLSPECIES) {
species = getWailaSpecies(accessor.getWorld(), pos);
}
if (!species.useDefaultWailaBody()) {
return tooltip;
}
if (!lastPos.equals(pos)) {
lastVolume = getTreeVolume(accessor.getWorld(), pos);
}
// Update the cached species and position
lastSpecies = species;
lastPos = pos;
if (species != Species.NULLSPECIES) {
if (species.showSpeciesOnWaila()) {
tooltip.add("Species: " + species.getLocalizedName());
}
if (Minecraft.getMinecraft().gameSettings.advancedItemTooltips) {
tooltip.add(TextFormatting.DARK_GRAY + species.getRegistryName().toString());
}
String renderString = "";
ItemStack seedStack = species.getSeedStack(1);
String seedName = seedStack.getItem().getRegistryName().toString();
renderString += SpecialChars.getRenderString("waila.stack", "1", seedName, String.valueOf(1), String.valueOf(seedStack.getItemDamage()));
if (lastVolume > 0) {
LogsAndSticks las = species.getLogsAndSticks(lastVolume);
if (las.logs > 0) {
ItemStack logStack = species.getFamily().getPrimitiveLogItemStack(1);
String logName = logStack.getItem().getRegistryName().toString();
renderString += SpecialChars.getRenderString("waila.stack", "1", logName, String.valueOf(las.logs), String.valueOf(logStack.getItemDamage()));
}
if (las.sticks > 0) {
ItemStack stickStack = species.getFamily().getStick(1);
String stickName = stickStack.getItem().getRegistryName().toString();
renderString += SpecialChars.getRenderString("waila.stack", "1", stickName, String.valueOf(las.sticks), String.valueOf(stickStack.getItemDamage()));
}
}
tooltip.add(renderString);
}
return tooltip;
}
Aggregations