Code cleanup
This commit is contained in:
parent
8e9d2822ea
commit
57a2c222f1
49 changed files with 397 additions and 319 deletions
|
@ -12,6 +12,7 @@ import cr0s.warpdrive.event.ChunkHandler;
|
|||
import cr0s.warpdrive.world.SpaceTeleporter;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockLiquid;
|
||||
|
@ -100,7 +101,8 @@ public class Commons {
|
|||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions") // IDE says "§" == CHAR_FORMATTING, execution says otherwise
|
||||
public static String updateEscapeCodes(final String message) {
|
||||
@Nonnull
|
||||
public static String updateEscapeCodes(@Nonnull final String message) {
|
||||
return message
|
||||
.replace("§", CHAR_FORMATTING)
|
||||
.replace("\\n", "\n")
|
||||
|
@ -108,7 +110,8 @@ public class Commons {
|
|||
.replaceAll("\u00A0", " "); // u00A0 is 'NO-BREAK SPACE'
|
||||
}
|
||||
|
||||
public static String removeFormatting(final String message) {
|
||||
@Nonnull
|
||||
public static String removeFormatting(@Nonnull final String message) {
|
||||
return updateEscapeCodes(message)
|
||||
.replaceAll("(" + CHAR_FORMATTING + ".)", "");
|
||||
}
|
||||
|
@ -127,7 +130,8 @@ public class Commons {
|
|||
}
|
||||
|
||||
// inspired by FontRender.getFormatFromString
|
||||
private static String getFormatFromString(final String message) {
|
||||
@Nonnull
|
||||
private static String getFormatFromString(@Nonnull final String message) {
|
||||
final int indexLastChar = message.length() - 1;
|
||||
StringBuilder result = new StringBuilder();
|
||||
int indexEscapeCode = -1;
|
||||
|
@ -153,22 +157,33 @@ public class Commons {
|
|||
public static Style styleValue = new Style().setColor(TextFormatting.YELLOW);
|
||||
public static Style styleVoltage = new Style().setColor(TextFormatting.DARK_GREEN);
|
||||
|
||||
public static WarpDriveText getChatPrefix(final Block block) {
|
||||
@Nonnull
|
||||
public static WarpDriveText getChatPrefix(@Nonnull final Block block) {
|
||||
return getChatPrefix(block.getTranslationKey() + ".name");
|
||||
}
|
||||
|
||||
public static WarpDriveText getChatPrefix(final ItemStack itemStack) {
|
||||
@Nonnull
|
||||
public static WarpDriveText getChatPrefix(@Nonnull final ItemStack itemStack) {
|
||||
return getChatPrefix(itemStack.getTranslationKey() + ".name");
|
||||
}
|
||||
|
||||
public static WarpDriveText getChatPrefix(final String translationKey) {
|
||||
return new WarpDriveText(styleHeader, "warpdrive.guide.prefix", new TextComponentTranslation(translationKey));
|
||||
@Nonnull
|
||||
public static WarpDriveText getChatPrefix(@Nonnull final String translationKey) {
|
||||
return new WarpDriveText(styleHeader, "warpdrive.guide.prefix",
|
||||
new TextComponentTranslation(translationKey));
|
||||
}
|
||||
|
||||
public static void addChatMessage(final ICommandSender commandSender, final ITextComponent textComponent) {
|
||||
@Nonnull
|
||||
public static WarpDriveText getNamedPrefix(@Nonnull final String name) {
|
||||
return new WarpDriveText(styleHeader, "warpdrive.guide.prefix",
|
||||
new TextComponentString(name));
|
||||
}
|
||||
|
||||
public static void addChatMessage(final ICommandSender commandSender, @Nonnull final ITextComponent textComponent) {
|
||||
final String message = textComponent.getFormattedText();
|
||||
if (commandSender == null) {
|
||||
WarpDrive.logger.error(String.format("Unable to send message to NULL sender: %s", message));
|
||||
WarpDrive.logger.error(String.format("Unable to send message to NULL sender: %s",
|
||||
message));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -187,17 +202,17 @@ public class Commons {
|
|||
|
||||
// add tooltip information with text formatting and line splitting
|
||||
// will ensure it fits on minimum screen width
|
||||
public static void addTooltip(final List<String> list, final String tooltip) {
|
||||
public static void addTooltip(final List<String> list, @Nonnull final String tooltip) {
|
||||
// skip empty tooltip
|
||||
if (tooltip.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// apply requested formatting
|
||||
final String[] split = updateEscapeCodes(tooltip).split("\n");
|
||||
final String[] lines = updateEscapeCodes(tooltip).split("\n");
|
||||
|
||||
// add new lines
|
||||
for (final String line : split) {
|
||||
for (final String line : lines) {
|
||||
// skip redundant information
|
||||
boolean isExisting = false;
|
||||
final String cleanToAdd = removeFormatting(line).trim().toLowerCase();
|
||||
|
@ -288,6 +303,7 @@ public class Commons {
|
|||
return String.format("%,d", Math.round(value));
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static String format(final Object[] arguments) {
|
||||
final StringBuilder result = new StringBuilder();
|
||||
if (arguments != null && arguments.length > 0) {
|
||||
|
@ -305,6 +321,7 @@ public class Commons {
|
|||
return result.toString();
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static String format(final World world) {
|
||||
if (world == null) {
|
||||
return "~NULL~";
|
||||
|
@ -360,7 +377,7 @@ public class Commons {
|
|||
x, y, z);
|
||||
}
|
||||
|
||||
public static String format(final ItemStack itemStack) {
|
||||
public static String format(@Nonnull final ItemStack itemStack) {
|
||||
final String stringNBT;
|
||||
if (itemStack.hasTagCompound()) {
|
||||
stringNBT = " " + itemStack.getTagCompound();
|
||||
|
@ -382,7 +399,7 @@ public class Commons {
|
|||
.replace("\\", ".");
|
||||
}
|
||||
|
||||
public static ItemStack copyWithSize(final ItemStack itemStack, final int newSize) {
|
||||
public static ItemStack copyWithSize(@Nonnull final ItemStack itemStack, final int newSize) {
|
||||
final ItemStack ret = itemStack.copy();
|
||||
ret.setCount(newSize);
|
||||
return ret;
|
||||
|
@ -472,8 +489,10 @@ public class Commons {
|
|||
return iterated;
|
||||
}
|
||||
|
||||
public static Set<BlockStatePos> getConnectedBlockStatePos(final IBlockAccess blockAccess, final Collection<BlockPos> start, final VectorI[] directions,
|
||||
final Set<Block> blockConnecting, final Set<Block> blockResults, final int maxRange) {
|
||||
@Nonnull
|
||||
public static Set<BlockStatePos> getConnectedBlockStatePos(@Nonnull final IBlockAccess blockAccess, @Nonnull final Collection<BlockPos> start,
|
||||
@Nonnull final VectorI[] directions, @Nonnull final Set<Block> blockConnecting,
|
||||
@Nonnull final Set<Block> blockResults, final int maxRange) {
|
||||
Set<BlockPos> toIterate = new HashSet<>(start.size() * 4);
|
||||
final Set<BlockPos> blockPosIterated = new HashSet<>(64);
|
||||
final Set<BlockStatePos> blockStatePosResults = new HashSet<>(64);
|
||||
|
@ -602,7 +621,7 @@ public class Commons {
|
|||
|
||||
// configurable interpolation
|
||||
|
||||
public static double interpolate(final double[] xValues, final double[] yValues, final double xInput) {
|
||||
public static double interpolate(@Nonnull final double[] xValues, @Nonnull final double[] yValues, final double xInput) {
|
||||
if (WarpDrive.isDev) {
|
||||
assert xValues.length == yValues.length;
|
||||
assert xValues.length > 1;
|
||||
|
@ -627,7 +646,7 @@ public class Commons {
|
|||
return yMin + (x - xMin) * (yMax - yMin) / (xMax - xMin);
|
||||
}
|
||||
|
||||
public static EnumFacing getHorizontalDirectionFromEntity(final EntityLivingBase entityLiving) {
|
||||
public static EnumFacing getHorizontalDirectionFromEntity(@Nullable final EntityLivingBase entityLiving) {
|
||||
if (entityLiving != null) {
|
||||
final int direction = Math.round(entityLiving.rotationYaw / 90.0F) & 3;
|
||||
switch (direction) {
|
||||
|
@ -645,7 +664,7 @@ public class Commons {
|
|||
return EnumFacing.NORTH;
|
||||
}
|
||||
|
||||
public static EnumFacing getFacingFromEntity(final EntityLivingBase entityLivingBase) {
|
||||
public static EnumFacing getFacingFromEntity(@Nullable final EntityLivingBase entityLivingBase) {
|
||||
if (entityLivingBase != null) {
|
||||
final EnumFacing facing;
|
||||
if (entityLivingBase.rotationPitch > 45) {
|
||||
|
@ -715,6 +734,7 @@ public class Commons {
|
|||
WarpDrive.logger.error(stringBuilder.toString());
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static String getMethodName(final int depth) {
|
||||
try {
|
||||
final StackTraceElement stackTraceElement = (StackTraceElement) methodThrowable_getStackTraceElement.invoke(
|
||||
|
@ -726,7 +746,7 @@ public class Commons {
|
|||
}
|
||||
}
|
||||
|
||||
public static void writeNBTToFile(final String fileName, final NBTTagCompound tagCompound) {
|
||||
public static void writeNBTToFile(@Nonnull final String fileName, @Nonnull final NBTTagCompound tagCompound) {
|
||||
if (WarpDrive.isDev) {
|
||||
WarpDrive.logger.info(String.format("writeNBTToFile %s",
|
||||
fileName));
|
||||
|
@ -749,7 +769,7 @@ public class Commons {
|
|||
}
|
||||
}
|
||||
|
||||
public static NBTTagCompound readNBTFromFile(final String fileName) {
|
||||
public static NBTTagCompound readNBTFromFile(@Nonnull final String fileName) {
|
||||
if (WarpDrive.isDev) {
|
||||
WarpDrive.logger.info(String.format("readNBTFromFile %s", fileName));
|
||||
}
|
||||
|
@ -773,21 +793,21 @@ public class Commons {
|
|||
return null;
|
||||
}
|
||||
|
||||
public static BlockPos createBlockPosFromNBT(final NBTTagCompound tagCompound) {
|
||||
public static BlockPos createBlockPosFromNBT(@Nonnull final NBTTagCompound tagCompound) {
|
||||
final int x = tagCompound.getInteger("x");
|
||||
final int y = tagCompound.getInteger("y");
|
||||
final int z = tagCompound.getInteger("z");
|
||||
return new BlockPos(x, y, z);
|
||||
}
|
||||
|
||||
public static NBTTagCompound writeBlockPosToNBT(final BlockPos blockPos, final NBTTagCompound tagCompound) {
|
||||
public static NBTTagCompound writeBlockPosToNBT(@Nonnull final BlockPos blockPos, @Nonnull final NBTTagCompound tagCompound) {
|
||||
tagCompound.setInteger("x", blockPos.getX());
|
||||
tagCompound.setInteger("y", blockPos.getY());
|
||||
tagCompound.setInteger("z", blockPos.getZ());
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
public static EntityPlayerMP[] getOnlinePlayerByNameOrSelector(final ICommandSender commandSender, final String playerNameOrSelector) {
|
||||
public static EntityPlayerMP[] getOnlinePlayerByNameOrSelector(@Nonnull final ICommandSender commandSender, final String playerNameOrSelector) {
|
||||
final MinecraftServer server = commandSender.getServer();
|
||||
assert server != null;
|
||||
final List<EntityPlayerMP> onlinePlayers = server.getPlayerList().getPlayers();
|
||||
|
@ -834,7 +854,7 @@ public class Commons {
|
|||
}
|
||||
}
|
||||
|
||||
public static void messageToAllPlayersInArea(final IStarMapRegistryTileEntity tileEntity, final WarpDriveText textComponent) {
|
||||
public static void messageToAllPlayersInArea(@Nonnull final IStarMapRegistryTileEntity tileEntity, @Nonnull final WarpDriveText textComponent) {
|
||||
assert tileEntity instanceof TileEntity;
|
||||
final AxisAlignedBB starMapArea = tileEntity.getStarMapArea();
|
||||
final ITextComponent messageFormatted = Commons.getChatPrefix(tileEntity.getStarMapName())
|
||||
|
@ -851,7 +871,7 @@ public class Commons {
|
|||
}
|
||||
}
|
||||
|
||||
public static void moveEntity(final Entity entity, final World worldDestination, final Vector3 v3Destination) {
|
||||
public static void moveEntity(@Nonnull final Entity entity, @Nonnull final World worldDestination, @Nonnull final Vector3 v3Destination) {
|
||||
if (entity.world.isRemote) {
|
||||
WarpDrive.logger.error(String.format("Skipping remote movement for entity %s destination %s",
|
||||
entity, Commons.format(worldDestination, v3Destination) ));
|
||||
|
@ -913,10 +933,10 @@ public class Commons {
|
|||
|
||||
// server side version of EntityLivingBase.rayTrace
|
||||
private static final double BLOCK_REACH_DISTANCE = 5.0D; // this is a client side hardcoded value, applicable to creative players
|
||||
public static RayTraceResult getInteractingBlock(final World world, final EntityPlayer entityPlayer) {
|
||||
public static RayTraceResult getInteractingBlock(@Nonnull final World world, @Nonnull final EntityPlayer entityPlayer) {
|
||||
return getInteractingBlock(world, entityPlayer, BLOCK_REACH_DISTANCE);
|
||||
}
|
||||
public static RayTraceResult getInteractingBlock(final World world, final EntityPlayer entityPlayer, final double distance) {
|
||||
public static RayTraceResult getInteractingBlock(@Nonnull final World world, @Nonnull final EntityPlayer entityPlayer, final double distance) {
|
||||
final Vec3d vec3Position = new Vec3d(entityPlayer.posX, entityPlayer.posY + entityPlayer.eyeHeight, entityPlayer.posZ);
|
||||
final Vec3d vec3Look = entityPlayer.getLook(1.0F);
|
||||
final Vec3d vec3Target = vec3Position.add(vec3Look.x * distance, vec3Look.y * distance, vec3Look.z * distance);
|
||||
|
@ -929,7 +949,7 @@ public class Commons {
|
|||
// We're remapping it using unlocalized names, since those don't change
|
||||
private static HashMap<String, Fluid> fluidByBlockName;
|
||||
|
||||
public static Fluid fluid_getByBlock(final Block block) {
|
||||
public static Fluid fluid_getByBlock(@Nonnull final Block block) {
|
||||
// validate context
|
||||
if (!(block instanceof BlockLiquid)) {
|
||||
// if (WarpDrive.isDev) {
|
||||
|
@ -964,14 +984,14 @@ public class Commons {
|
|||
return EnumFacing.byIndex(index);
|
||||
}
|
||||
|
||||
public static int getOrdinal(final EnumFacing direction) {
|
||||
public static int getOrdinal(@Nullable final EnumFacing direction) {
|
||||
if (direction == null) {
|
||||
return 6;
|
||||
}
|
||||
return direction.ordinal();
|
||||
}
|
||||
|
||||
public static boolean isValidCamouflage(final IBlockState blockState) {
|
||||
public static boolean isValidCamouflage(@Nullable final IBlockState blockState) {
|
||||
// fast check
|
||||
if ( blockState == null
|
||||
|| blockState == Blocks.AIR
|
||||
|
@ -1021,7 +1041,7 @@ public class Commons {
|
|||
return true;
|
||||
}
|
||||
|
||||
public static IBlockState getBlockState_noChunkLoading(final IBlockAccess blockAccess, final BlockPos blockPos) {
|
||||
public static IBlockState getBlockState_noChunkLoading(@Nullable final IBlockAccess blockAccess, @Nonnull final BlockPos blockPos) {
|
||||
// skip unloaded worlds
|
||||
if (blockAccess == null) {
|
||||
return null;
|
||||
|
@ -1033,7 +1053,7 @@ public class Commons {
|
|||
return blockAccess.getBlockState(blockPos);
|
||||
}
|
||||
|
||||
public static boolean isReplaceableOreGen(final World world, final BlockPos blockPos) {
|
||||
public static boolean isReplaceableOreGen(@Nonnull final World world, @Nonnull final BlockPos blockPos) {
|
||||
final IBlockState blockStateActual = world.getBlockState(blockPos);
|
||||
final Block blockActual = blockStateActual.getBlock();
|
||||
return blockActual.isReplaceableOreGen(blockStateActual, world, blockPos,
|
||||
|
|
|
@ -184,6 +184,7 @@ import org.apache.logging.log4j.Logger;
|
|||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
@Mod(modid = WarpDrive.MODID,
|
||||
|
@ -288,6 +289,7 @@ public class WarpDrive {
|
|||
public static DamageTeleportation damageTeleportation;
|
||||
public static DamageWarm damageWarm;
|
||||
|
||||
// world generation
|
||||
public static Biome biomeSpace;
|
||||
public static DimensionType dimensionTypeSpace;
|
||||
public static DimensionType dimensionTypeHyperSpace;
|
||||
|
@ -776,19 +778,19 @@ public class WarpDrive {
|
|||
final public static ArrayList<VillagerProfession> villagerProfessions = new ArrayList<>(10);
|
||||
|
||||
// Register a Biome.
|
||||
public static <BIOME extends Biome> BIOME register(final BIOME biome) {
|
||||
public static <BIOME extends Biome> BIOME register(@Nonnull final BIOME biome) {
|
||||
biomes.add(biome);
|
||||
return biome;
|
||||
}
|
||||
|
||||
// Register a Block with the default ItemBlock class.
|
||||
public static <BLOCK extends Block> BLOCK register(final BLOCK block) {
|
||||
public static <BLOCK extends Block> BLOCK register(@Nonnull final BLOCK block) {
|
||||
assert block instanceof IBlockBase;
|
||||
return register(block, ((IBlockBase) block).createItemBlock());
|
||||
}
|
||||
|
||||
// Register a Block with a custom ItemBlock class.
|
||||
public static <BLOCK extends Block> BLOCK register(final BLOCK block, @Nullable final ItemBlock itemBlock) {
|
||||
public static <BLOCK extends Block> BLOCK register(@Nonnull final BLOCK block, @Nullable final ItemBlock itemBlock) {
|
||||
final ResourceLocation resourceLocation = block.getRegistryName();
|
||||
if (resourceLocation == null) {
|
||||
WarpDrive.logger.error(String.format("Missing registry name for block %s, ignoring registration...",
|
||||
|
@ -807,34 +809,34 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
// Register an Enchantment.
|
||||
public static <ENCHANTMENT extends Enchantment> ENCHANTMENT register(final ENCHANTMENT enchantment) {
|
||||
public static <ENCHANTMENT extends Enchantment> ENCHANTMENT register(@Nonnull final ENCHANTMENT enchantment) {
|
||||
enchantments.add(enchantment);
|
||||
return enchantment;
|
||||
}
|
||||
|
||||
// Register an Item.
|
||||
public static <ITEM extends Item> ITEM register(final ITEM item) {
|
||||
public static <ITEM extends Item> ITEM register(@Nonnull final ITEM item) {
|
||||
items.add(item);
|
||||
return item;
|
||||
}
|
||||
|
||||
// Register an Potion.
|
||||
public static <POTION extends Potion> POTION register(final POTION potion) {
|
||||
public static <POTION extends Potion> POTION register(@Nonnull final POTION potion) {
|
||||
potions.add(potion);
|
||||
return potion;
|
||||
}
|
||||
|
||||
// Register an PotionType.
|
||||
public static <POTION_TYPE extends PotionType> POTION_TYPE register(final POTION_TYPE potionType) {
|
||||
public static <POTION_TYPE extends PotionType> POTION_TYPE register(@Nonnull final POTION_TYPE potionType) {
|
||||
potionTypes.add(potionType);
|
||||
return potionType;
|
||||
}
|
||||
|
||||
// Register a recipe.
|
||||
public static <RECIPE extends IRecipe> RECIPE register(final RECIPE recipe) {
|
||||
public static <RECIPE extends IRecipe> RECIPE register(@Nonnull final RECIPE recipe) {
|
||||
return register(recipe, "");
|
||||
}
|
||||
public static <RECIPE extends IRecipe> RECIPE register(final RECIPE recipe, final String suffix) {
|
||||
public static <RECIPE extends IRecipe> RECIPE register(@Nonnull final RECIPE recipe, final String suffix) {
|
||||
ResourceLocation registryName = recipe.getRegistryName();
|
||||
if (registryName == null) {
|
||||
final String path;
|
||||
|
@ -874,19 +876,19 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
// Register a SoundEvent.
|
||||
public static <SOUND_EVENT extends SoundEvent> SOUND_EVENT register(final SOUND_EVENT soundEvent) {
|
||||
public static <SOUND_EVENT extends SoundEvent> SOUND_EVENT register(@Nonnull final SOUND_EVENT soundEvent) {
|
||||
soundEvents.add(soundEvent);
|
||||
return soundEvent;
|
||||
}
|
||||
|
||||
// Register a VillagerProfession.
|
||||
public static <VILLAGER_PROFESSION extends VillagerProfession> VILLAGER_PROFESSION register(final VILLAGER_PROFESSION villagerProfession) {
|
||||
public static <VILLAGER_PROFESSION extends VillagerProfession> VILLAGER_PROFESSION register(@Nonnull final VILLAGER_PROFESSION villagerProfession) {
|
||||
villagerProfessions.add(villagerProfession);
|
||||
return villagerProfession;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterBiomes(final RegistryEvent.Register<Biome> event) {
|
||||
public void onRegisterBiomes(@Nonnull final RegistryEvent.Register<Biome> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
for (final Biome biome : biomes) {
|
||||
event.getRegistry().register(biome);
|
||||
|
@ -896,7 +898,7 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterBlocks(final RegistryEvent.Register<Block> event) {
|
||||
public void onRegisterBlocks(@Nonnull final RegistryEvent.Register<Block> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
for (final Block block : blocks) {
|
||||
event.getRegistry().register(block);
|
||||
|
@ -936,7 +938,7 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterEnchantments(final RegistryEvent.Register<Enchantment> event) {
|
||||
public void onRegisterEnchantments(@Nonnull final RegistryEvent.Register<Enchantment> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
for (final Enchantment enchantment : enchantments) {
|
||||
event.getRegistry().register(enchantment);
|
||||
|
@ -944,7 +946,7 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterEntities(final RegistryEvent.Register<EntityEntry> event) {
|
||||
public void onRegisterEntities(@Nonnull final RegistryEvent.Register<EntityEntry> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
|
||||
EntityEntry entityEntry;
|
||||
|
@ -979,7 +981,7 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterItems(final RegistryEvent.Register<Item> event) {
|
||||
public void onRegisterItems(@Nonnull final RegistryEvent.Register<Item> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
for (final Item item : items) {
|
||||
event.getRegistry().register(item);
|
||||
|
@ -991,7 +993,7 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterPotions(final RegistryEvent.Register<Potion> event) {
|
||||
public void onRegisterPotions(@Nonnull final RegistryEvent.Register<Potion> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
for (final Potion potion : potions) {
|
||||
event.getRegistry().register(potion);
|
||||
|
@ -999,7 +1001,7 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterPotionTypes(final RegistryEvent.Register<PotionType> event) {
|
||||
public void onRegisterPotionTypes(@Nonnull final RegistryEvent.Register<PotionType> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
for (final PotionType potionType : potionTypes) {
|
||||
event.getRegistry().register(potionType);
|
||||
|
@ -1007,7 +1009,7 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterRecipes(final RegistryEvent.Register<IRecipe> event) {
|
||||
public void onRegisterRecipes(@Nonnull final RegistryEvent.Register<IRecipe> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
|
||||
Recipes.initOreDictionary();
|
||||
|
@ -1020,7 +1022,7 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterSoundEvents(final RegistryEvent.Register<SoundEvent> event) {
|
||||
public void onRegisterSoundEvents(@Nonnull final RegistryEvent.Register<SoundEvent> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
cr0s.warpdrive.data.SoundEvents.registerSounds();
|
||||
for (final SoundEvent soundEvent : soundEvents) {
|
||||
|
@ -1029,7 +1031,7 @@ public class WarpDrive {
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterVillagerProfessions(final RegistryEvent.Register<VillagerProfession> event) {
|
||||
public void onRegisterVillagerProfessions(@Nonnull final RegistryEvent.Register<VillagerProfession> event) {
|
||||
WarpDrive.logger.debug(String.format("Registering %s", event.getName()));
|
||||
for (final VillagerProfession villagerProfession : villagerProfessions) {
|
||||
event.getRegistry().register(villagerProfession);
|
||||
|
|
|
@ -62,6 +62,7 @@ public abstract class BlockAbstractBase extends Block implements IBlockBase {
|
|||
// Force a single model through a custom state mapper
|
||||
final StateMapperBase stateMapperBase = new StateMapperBase() {
|
||||
@Nonnull
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
protected ModelResourceLocation getModelResourceLocation(@Nonnull final IBlockState blockState) {
|
||||
return modelResourceLocation;
|
||||
|
|
|
@ -108,7 +108,7 @@ public abstract class BlockAbstractContainer extends BlockContainer implements I
|
|||
@Nonnull final EntityLivingBase entityLivingBase, final EnumHand enumHand) {
|
||||
final IBlockState blockState = super.getStateForPlacement(world, blockPos, facing, hitX, hitY, hitZ, metadata, entityLivingBase, enumHand);
|
||||
final boolean isRotating = !ignoreFacingOnPlacement
|
||||
&& blockState.getProperties().containsKey(BlockProperties.FACING);
|
||||
&& blockState.getProperties().containsKey(BlockProperties.FACING);
|
||||
if (isRotating) {
|
||||
if (blockState.isFullBlock()) {
|
||||
final EnumFacing enumFacing = Commons.getFacingFromEntity(entityLivingBase);
|
||||
|
@ -153,7 +153,7 @@ public abstract class BlockAbstractContainer extends BlockContainer implements I
|
|||
}
|
||||
|
||||
@Override
|
||||
public void dropBlockAsItemWithChance(final World world, @Nonnull final BlockPos blockPos, @Nonnull final IBlockState blockState,
|
||||
public void dropBlockAsItemWithChance(@Nonnull final World world, @Nonnull final BlockPos blockPos, @Nonnull final IBlockState blockState,
|
||||
final float chance, final int fortune) {
|
||||
super.dropBlockAsItemWithChance(world, blockPos, blockState, chance, fortune); // calls getDrops() here below
|
||||
if ( !world.isRemote
|
||||
|
@ -222,14 +222,14 @@ public abstract class BlockAbstractContainer extends BlockContainer implements I
|
|||
final ResourceLocation registryName = blockNeighbor.getRegistryName();
|
||||
WarpDrive.logger.error(String.format("Bad multithreading detected from mod %s %s, please report to mod author",
|
||||
registryName == null ? blockNeighbor : registryName.getNamespace(),
|
||||
Commons.format(blockAccess, blockPosNeighbor) ));
|
||||
Commons.format(blockAccess, blockPosNeighbor)));
|
||||
new ConcurrentModificationException().printStackTrace();
|
||||
}
|
||||
return;
|
||||
}
|
||||
final TileEntity tileEntity = blockAccess.getTileEntity(blockPos);
|
||||
if ( tileEntity == null
|
||||
|| tileEntity.getWorld().isRemote ) {
|
||||
if (tileEntity == null
|
||||
|| tileEntity.getWorld().isRemote) {
|
||||
return;
|
||||
}
|
||||
if (tileEntity instanceof IBlockUpdateDetector) {
|
||||
|
@ -263,7 +263,7 @@ public abstract class BlockAbstractContainer extends BlockContainer implements I
|
|||
}
|
||||
}
|
||||
|
||||
public void onEMP(final World world, final BlockPos blockPos, final float efficiency) {
|
||||
public void onEMP(@Nonnull final World world, @Nonnull final BlockPos blockPos, final float efficiency) {
|
||||
final TileEntity tileEntity = world.getTileEntity(blockPos);
|
||||
if (tileEntity instanceof TileEntityAbstractEnergy) {
|
||||
final TileEntityAbstractEnergy tileEntityAbstractEnergy = (TileEntityAbstractEnergy) tileEntity;
|
||||
|
|
|
@ -113,15 +113,15 @@ public class ItemBlockAbstractBase extends ItemBlock implements IItemBase {
|
|||
ClientProxy.modelInitialisation(this);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Nonnull
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
return ClientProxy.getModelResourceLocation(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public void addInformation(@Nonnull final ItemStack itemStack, @Nullable final World world,
|
||||
@Nonnull final List<String> list, @Nullable final ITooltipFlag advancedItemTooltips) {
|
||||
super.addInformation(itemStack, world, list, advancedItemTooltips);
|
||||
|
|
|
@ -242,6 +242,7 @@ public abstract class TileEntityAbstractBase extends TileEntity implements IBloc
|
|||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
protected WarpDriveText getStatusPrefix() {
|
||||
if (world != null) {
|
||||
final Item item = Item.getItemFromBlock(getBlockType());
|
||||
|
@ -253,6 +254,7 @@ public abstract class TileEntityAbstractBase extends TileEntity implements IBloc
|
|||
return new WarpDriveText();
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
protected WarpDriveText getBeamFrequencyStatus(final int beamFrequency) {
|
||||
if (beamFrequency == -1) {
|
||||
return new WarpDriveText(Commons.styleWarning, "warpdrive.beam_frequency.status_line.undefined");
|
||||
|
@ -263,6 +265,7 @@ public abstract class TileEntityAbstractBase extends TileEntity implements IBloc
|
|||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
protected WarpDriveText getVideoChannelStatus(final int videoChannel) {
|
||||
if (videoChannel == -1) {
|
||||
return new WarpDriveText(Commons.styleWarning, "warpdrive.video_channel.status_line.undefined");
|
||||
|
|
|
@ -27,6 +27,7 @@ import li.cil.oc.api.network.Node;
|
|||
import li.cil.oc.api.network.Visibility;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -243,7 +244,7 @@ public abstract class TileEntityAbstractInterfaced extends TileEntityAbstractBas
|
|||
// - block connection when missing the Computer interface upgrade
|
||||
// note: direct API calls remains possible without upgrade, as it's lore dependant
|
||||
@Optional.Method(modid = "opencomputers")
|
||||
protected Object[] OC_convertArgumentsAndLogCall(final Context context, final Arguments args) {
|
||||
protected Object[] OC_convertArgumentsAndLogCall(@Nonnull final Context context, @Nonnull final Arguments args) {
|
||||
final Object[] arguments = new Object[args.count()];
|
||||
int index = 0;
|
||||
for (final Object arg : args) {
|
||||
|
@ -341,7 +342,7 @@ public abstract class TileEntityAbstractInterfaced extends TileEntityAbstractBas
|
|||
return false;
|
||||
}
|
||||
|
||||
protected VectorI computer_getVectorI(final VectorI vDefault, final Object[] arguments) {
|
||||
protected VectorI computer_getVectorI(final VectorI vDefault, @Nonnull final Object[] arguments) {
|
||||
try {
|
||||
if (arguments.length == 3) {
|
||||
final int x = Commons.toInt(arguments[0]);
|
||||
|
@ -355,7 +356,10 @@ public abstract class TileEntityAbstractInterfaced extends TileEntityAbstractBas
|
|||
return vDefault;
|
||||
}
|
||||
|
||||
protected Object[] computer_getOrSetVector3(final FunctionGet<Vector3> getVector, final FunctionSetVector<Float> setVector, final Object[] arguments) {
|
||||
@Nonnull
|
||||
protected Object[] computer_getOrSetVector3(@Nonnull final FunctionGet<Vector3> getVector,
|
||||
@Nonnull final FunctionSetVector<Float> setVector,
|
||||
final Object[] arguments) {
|
||||
if ( arguments != null
|
||||
&& arguments.length > 0
|
||||
&& arguments[0] != null ) {
|
||||
|
@ -388,7 +392,7 @@ public abstract class TileEntityAbstractInterfaced extends TileEntityAbstractBas
|
|||
return new Double[] { v3Actual.x, v3Actual.y, v3Actual.z };
|
||||
}
|
||||
|
||||
protected UUID computer_getUUID(final UUID uuidDefault, final Object[] arguments) {
|
||||
protected UUID computer_getUUID(final UUID uuidDefault, @Nonnull final Object[] arguments) {
|
||||
try {
|
||||
if (arguments.length == 1 && arguments[0] != null) {
|
||||
if (arguments[0] instanceof UUID) {
|
||||
|
@ -697,7 +701,7 @@ public abstract class TileEntityAbstractInterfaced extends TileEntityAbstractBas
|
|||
|
||||
@Override
|
||||
@Optional.Method(modid = "opencomputers")
|
||||
public void onConnect(final Node node) {
|
||||
public void onConnect(@Nonnull final Node node) {
|
||||
if (node.host() instanceof Context) {
|
||||
// Attach our file system to new computers we get connected to.
|
||||
// Note that this is also called for all already present computers
|
||||
|
@ -711,7 +715,7 @@ public abstract class TileEntityAbstractInterfaced extends TileEntityAbstractBas
|
|||
|
||||
@Override
|
||||
@Optional.Method(modid = "opencomputers")
|
||||
public void onDisconnect(final Node node) {
|
||||
public void onDisconnect(@Nonnull final Node node) {
|
||||
if (OC_fileSystem != null) {
|
||||
if (node.host() instanceof Context) {
|
||||
// Disconnecting from a single computer
|
||||
|
@ -725,7 +729,7 @@ public abstract class TileEntityAbstractInterfaced extends TileEntityAbstractBas
|
|||
|
||||
@Override
|
||||
@Optional.Method(modid = "opencomputers")
|
||||
public void onMessage(final Message message) {
|
||||
public void onMessage(@Nonnull final Message message) {
|
||||
// nothing special
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ public abstract class BlockAbstractAccelerator extends BlockAbstractBase impleme
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean canCreatureSpawn(@Nonnull IBlockState blockState, @Nonnull IBlockAccess blockAccess, @Nonnull BlockPos blockPos, SpawnPlacementType type) {
|
||||
public boolean canCreatureSpawn(@Nonnull final IBlockState blockState, @Nonnull final IBlockAccess blockAccess, @Nonnull final BlockPos blockPos, final SpawnPlacementType type) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -135,6 +135,7 @@ public class BlockShipScanner extends BlockAbstractContainer {
|
|||
|| !entityPlayer.isSneaking() ) {
|
||||
Commons.addChatMessage(entityPlayer, ((TileEntityShipScanner) tileEntity).getStatus());
|
||||
return true;
|
||||
|
||||
} else if (blockStateAbove.getBlock() != this) {
|
||||
((TileEntityShipScanner) tileEntity).blockCamouflage = blockStateAbove.getBlock();
|
||||
((TileEntityShipScanner) tileEntity).metadataCamouflage = blockStateAbove.getBlock().getMetaFromState(blockStateAbove);
|
||||
|
|
|
@ -8,6 +8,7 @@ import net.minecraft.block.properties.PropertyEnum;
|
|||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.BlockRenderLayer;
|
||||
|
@ -115,15 +116,16 @@ public class BlockDecorative extends BlockAbstractBase {
|
|||
return blockState.getBlock().getMetaFromState(blockState);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static ItemStack getItemStack(final EnumDecorativeType enumDecorativeType) {
|
||||
if (enumDecorativeType != null) {
|
||||
int damage = enumDecorativeType.ordinal();
|
||||
final int damage = enumDecorativeType.ordinal();
|
||||
if (itemStackCache[damage] == null) {
|
||||
itemStackCache[damage] = new ItemStack(WarpDrive.blockDecorative, 1, damage);
|
||||
}
|
||||
return itemStackCache[damage];
|
||||
}
|
||||
return null;
|
||||
return new ItemStack(Blocks.FIRE);
|
||||
}
|
||||
|
||||
public static ItemStack getItemStackNoCache(final EnumDecorativeType enumDecorativeType, final int amount) {
|
||||
|
|
|
@ -48,7 +48,7 @@ public class BlockCloakingCore extends BlockAbstractContainer {
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getMetaFromState(final IBlockState blockState) {
|
||||
public int getMetaFromState(@Nonnull final IBlockState blockState) {
|
||||
return blockState.getValue(BlockProperties.ACTIVE) ? 1 : 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,9 +19,8 @@ public class ItemBlockCapacitor extends ItemBlockAbstractBase {
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
final int damage = itemStack.getItemDamage();
|
||||
if (damage < 0 || damage > 15) {
|
||||
|
|
|
@ -10,6 +10,7 @@ import cr0s.warpdrive.data.Vector3;
|
|||
import cr0s.warpdrive.network.PacketHandler;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.Arrays;
|
||||
|
@ -153,7 +154,7 @@ public class TileEntityEnanReactorCore extends TileEntityEnanReactorController {
|
|||
}
|
||||
}
|
||||
|
||||
void decreaseInstability(final ReactorFace reactorFace, final int energy) {
|
||||
void decreaseInstability(@Nonnull final ReactorFace reactorFace, final int energy) {
|
||||
if (reactorFace.indexStability < 0) {
|
||||
return;
|
||||
}
|
||||
|
@ -231,7 +232,8 @@ public class TileEntityEnanReactorCore extends TileEntityEnanReactorController {
|
|||
}
|
||||
}
|
||||
|
||||
private TileEntityEnanReactorLaser getLaser(final ReactorFace reactorFace) {
|
||||
@Nullable
|
||||
private TileEntityEnanReactorLaser getLaser(@Nonnull final ReactorFace reactorFace) {
|
||||
final WeakReference<TileEntityEnanReactorLaser> weakTileEntityLaser = weakTileEntityLasers[reactorFace.indexStability];
|
||||
TileEntityEnanReactorLaser tileEntityEnanReactorLaser;
|
||||
if (weakTileEntityLaser != null) {
|
||||
|
|
|
@ -35,7 +35,7 @@ public abstract class BlockAbstractForceField extends BlockAbstractContainer {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onEMP(World world, final BlockPos blockPos, final float efficiency) {
|
||||
public void onEMP(@Nonnull final World world, @Nonnull final BlockPos blockPos, final float efficiency) {
|
||||
super.onEMP(world, blockPos, efficiency * (1.0F - 0.2F * (enumTier.getIndex() - 1)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -531,7 +531,7 @@ public class BlockForceField extends BlockAbstractForceField implements IDamageR
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onEMP(final World world, final BlockPos blockPos, final float efficiency) {
|
||||
public void onEMP(@Nonnull final World world, @Nonnull final BlockPos blockPos, final float efficiency) {
|
||||
if (efficiency * (1.0F - 0.20F * (enumTier.getIndex() - 1)) > world.rand.nextFloat()) {
|
||||
downgrade(world, blockPos);
|
||||
}
|
||||
|
|
|
@ -229,7 +229,7 @@ public class BlockForceFieldProjector extends BlockAbstractForceField {
|
|||
|| (enumFacing != blockState.getValue(BlockProperties.FACING) && (!tileEntityForceFieldProjector.isDoubleSided || enumFacing.getOpposite() != blockState.getValue(BlockProperties.FACING))) ) {
|
||||
// find a valid upgrade to dismount
|
||||
if (!tileEntityForceFieldProjector.hasUpgrade(enumForceFieldUpgrade)) {
|
||||
enumForceFieldUpgrade = (EnumForceFieldUpgrade)tileEntityForceFieldProjector.getFirstUpgradeOfType(EnumForceFieldUpgrade.class, EnumForceFieldUpgrade.NONE);
|
||||
enumForceFieldUpgrade = (EnumForceFieldUpgrade) tileEntityForceFieldProjector.getFirstUpgradeOfType(EnumForceFieldUpgrade.class, EnumForceFieldUpgrade.NONE);
|
||||
}
|
||||
|
||||
if (enumForceFieldUpgrade == EnumForceFieldUpgrade.NONE) {
|
||||
|
|
|
@ -19,8 +19,8 @@ public class ItemBlockForceFieldProjector extends ItemBlockAbstractBase {
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
final ResourceLocation resourceLocation = getRegistryName();
|
||||
assert resourceLocation != null;
|
||||
|
|
|
@ -19,9 +19,8 @@ public class ItemBlockHull extends ItemBlockAbstractBase {
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
if (block instanceof BlockHullStairs) {
|
||||
final ResourceLocation resourceLocation = getRegistryName();
|
||||
|
|
|
@ -35,11 +35,11 @@ public class ItemBlockHullSlab extends ItemBlockHull {
|
|||
|
||||
@Nonnull
|
||||
@Override
|
||||
public EnumActionResult onItemUse(@Nonnull final EntityPlayer entityPlayer, final World world, @Nonnull final BlockPos blockPos,
|
||||
@Nonnull final EnumHand enumHand, @Nonnull EnumFacing facing,
|
||||
final float hitX, final float hitY, final float hitZ) {
|
||||
public EnumActionResult onItemUse(@Nonnull final EntityPlayer entityPlayer,
|
||||
@Nonnull final World world, @Nonnull final BlockPos blockPos, @Nonnull final EnumHand hand,
|
||||
@Nonnull final EnumFacing facing, final float hitX, final float hitY, final float hitZ) {
|
||||
// get context
|
||||
final ItemStack itemStackHeld = entityPlayer.getHeldItem(enumHand);
|
||||
final ItemStack itemStackHeld = entityPlayer.getHeldItem(hand);
|
||||
if (itemStackHeld.isEmpty()) {
|
||||
return EnumActionResult.FAIL;
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class ItemBlockHullSlab extends ItemBlockHull {
|
|||
if (variantWorld.getFacing() == facing.getOpposite()) {
|
||||
final AxisAlignedBB boundingBox = blockStateWorld.getCollisionBoundingBox(world, blockPos);
|
||||
if (boundingBox != null && world.checkNoEntityCollision(boundingBox)) {
|
||||
EnumVariant variantNew;
|
||||
final EnumVariant variantNew;
|
||||
if (variantWorld.getIsPlain()) {// plain
|
||||
variantNew = EnumVariant.PLAIN_FULL;
|
||||
} else {
|
||||
|
@ -111,7 +111,7 @@ public class ItemBlockHullSlab extends ItemBlockHull {
|
|||
}
|
||||
|
||||
// try to place ignoring the existing block
|
||||
final IBlockState blockStatePlaced = blockSlab.getStateForPlacement(world, blockPosSide, facing, hitX, hitY, hitZ, metadataItem, entityPlayer, enumHand);
|
||||
final IBlockState blockStatePlaced = blockSlab.getStateForPlacement(world, blockPosSide, facing, hitX, hitY, hitZ, metadataItem, entityPlayer, hand);
|
||||
final EnumFacing enumFacingPlaced = blockStatePlaced.getValue(BlockHullSlab.VARIANT).getFacing().getOpposite();
|
||||
|
||||
// try to merge slabs when right-clicking on a side block
|
||||
|
@ -152,11 +152,12 @@ public class ItemBlockHullSlab extends ItemBlockHull {
|
|||
}
|
||||
}
|
||||
|
||||
return super.onItemUse(entityPlayer, world, blockPos, enumHand, facing, hitX, hitY, hitZ);
|
||||
return super.onItemUse(entityPlayer, world, blockPos, hand, facing, hitX, hitY, hitZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlaceBlockOnSide(final World world, @Nonnull final BlockPos blockPos, @Nonnull final EnumFacing facing, final EntityPlayer entityPlayer, @Nonnull final ItemStack itemStack) {
|
||||
public boolean canPlaceBlockOnSide(@Nonnull final World world, @Nonnull final BlockPos blockPos, @Nonnull final EnumFacing facing,
|
||||
@Nonnull final EntityPlayer entityPlayer, @Nonnull final ItemStack itemStack) {
|
||||
// check if clicked block can be interacted with
|
||||
@SuppressWarnings("deprecation")
|
||||
final IBlockState blockStateItem = blockSlab.getStateFromMeta(itemStack.getItemDamage());
|
||||
|
|
|
@ -125,6 +125,7 @@ public class BlockShipCore extends BlockAbstractRotatingContainer {
|
|||
}
|
||||
Commons.addChatMessage(entityPlayer, tileEntityShipCore.getBoundingBoxStatus());
|
||||
return true;
|
||||
|
||||
} else if ( !world.isRemote
|
||||
&& !entityPlayer.isSneaking() ) {
|
||||
Commons.addChatMessage(entityPlayer, tileEntityShipCore.getStatus());
|
||||
|
|
|
@ -118,7 +118,7 @@ public class ItemBlockTransporterBeacon extends ItemBlockAbstractBase implements
|
|||
return 0;
|
||||
}
|
||||
|
||||
private static ItemStack setEnergy(final ItemStack itemStack, final int energy) {
|
||||
private static ItemStack setEnergy(@Nonnull final ItemStack itemStack, final int energy) {
|
||||
if (!(itemStack.getItem() instanceof ItemBlockTransporterBeacon)) {
|
||||
return itemStack;
|
||||
}
|
||||
|
@ -131,7 +131,7 @@ public class ItemBlockTransporterBeacon extends ItemBlockAbstractBase implements
|
|||
return itemStack;
|
||||
}
|
||||
|
||||
private static ItemStack updateDamage(final ItemStack itemStack, final int energy, final boolean isActive) {
|
||||
private static ItemStack updateDamage(@Nonnull final ItemStack itemStack, final int energy, final boolean isActive) {
|
||||
final int maxDamage = itemStack.getMaxDamage();
|
||||
final int metadataEnergy = maxDamage - maxDamage * energy / WarpDriveConfig.TRANSPORTER_BEACON_MAX_ENERGY_STORED;
|
||||
final int metadataNew = (metadataEnergy & ~0x3) + (isActive ? 2 : 0);
|
||||
|
@ -145,7 +145,7 @@ public class ItemBlockTransporterBeacon extends ItemBlockAbstractBase implements
|
|||
|
||||
// ITransporterBeacon overrides
|
||||
@Override
|
||||
public boolean isActive(final ItemStack itemStack) {
|
||||
public boolean isActive(@Nonnull final ItemStack itemStack) {
|
||||
return getEnergy(itemStack) > WarpDriveConfig.TRANSPORTER_BEACON_ENERGY_PER_TICK;
|
||||
}
|
||||
|
||||
|
@ -212,15 +212,15 @@ public class ItemBlockTransporterBeacon extends ItemBlockAbstractBase implements
|
|||
|
||||
@Nonnull
|
||||
@Override
|
||||
public EnumActionResult onItemUse(@Nonnull final EntityPlayer entityPlayer, final World world, @Nonnull final BlockPos blockPos,
|
||||
@Nonnull final EnumHand enumHand, @Nonnull final EnumFacing enumFacing,
|
||||
final float hitX, final float hitY, final float hitZ) {
|
||||
public EnumActionResult onItemUse(@Nonnull final EntityPlayer entityPlayer,
|
||||
@Nonnull final World world, @Nonnull final BlockPos blockPos, @Nonnull final EnumHand hand,
|
||||
@Nonnull final EnumFacing facing, final float hitX, final float hitY, final float hitZ) {
|
||||
if (world.isRemote) {
|
||||
return EnumActionResult.FAIL;
|
||||
}
|
||||
|
||||
// get context
|
||||
final ItemStack itemStackHeld = entityPlayer.getHeldItem(enumHand);
|
||||
final ItemStack itemStackHeld = entityPlayer.getHeldItem(hand);
|
||||
if (itemStackHeld.isEmpty()) {
|
||||
return EnumActionResult.FAIL;
|
||||
}
|
||||
|
@ -230,9 +230,9 @@ public class ItemBlockTransporterBeacon extends ItemBlockAbstractBase implements
|
|||
final TileEntity tileEntity = world.getTileEntity(blockPos);
|
||||
|
||||
if (!(tileEntity instanceof ITransporterCore)) {
|
||||
return super.onItemUse(entityPlayer, world, blockPos, enumHand, enumFacing, hitX, hitY, hitZ);
|
||||
return super.onItemUse(entityPlayer, world, blockPos, hand, facing, hitX, hitY, hitZ);
|
||||
}
|
||||
if (!entityPlayer.canPlayerEdit(blockPos, enumFacing, itemStackHeld)) {
|
||||
if (!entityPlayer.canPlayerEdit(blockPos, facing, itemStackHeld)) {
|
||||
return EnumActionResult.FAIL;
|
||||
}
|
||||
|
||||
|
|
|
@ -13,15 +13,15 @@ import net.minecraft.world.IBlockAccess;
|
|||
class ShipScanner {
|
||||
|
||||
// inputs
|
||||
private IBlockAccess blockAccess;
|
||||
private int minX, minY, minZ;
|
||||
private int maxX, maxY, maxZ;
|
||||
private final IBlockAccess blockAccess;
|
||||
private final int minX, minY, minZ;
|
||||
private final int maxX, maxY, maxZ;
|
||||
|
||||
// execution
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
private MutableBlockPos mutableBlockPos;
|
||||
private final MutableBlockPos mutableBlockPos;
|
||||
|
||||
// output
|
||||
public int mass = 0;
|
||||
|
|
|
@ -31,9 +31,10 @@ public abstract class TileEntityAbstractShipController extends TileEntityAbstrac
|
|||
private int moveUp = 0;
|
||||
private int moveRight = 0;
|
||||
private byte rotationSteps = 0;
|
||||
protected String nameTarget = "";
|
||||
|
||||
protected EnumShipCommand enumShipCommand = EnumShipCommand.IDLE;
|
||||
protected boolean isCommandConfirmed = false;
|
||||
protected String nameTarget = "";
|
||||
|
||||
public TileEntityAbstractShipController() {
|
||||
super();
|
||||
|
@ -75,9 +76,6 @@ public abstract class TileEntityAbstractShipController extends TileEntityAbstrac
|
|||
public void readFromNBT(final NBTTagCompound tagCompound) {
|
||||
super.readFromNBT(tagCompound);
|
||||
|
||||
final boolean isConfirmed = tagCompound.hasKey("commandConfirmed") && tagCompound.getBoolean("commandConfirmed");
|
||||
setCommand(tagCompound.getString("commandName"), isConfirmed);
|
||||
|
||||
setFront(tagCompound.getInteger("front"));
|
||||
setRight(tagCompound.getInteger("right"));
|
||||
setUp (tagCompound.getInteger("up"));
|
||||
|
@ -91,6 +89,9 @@ public abstract class TileEntityAbstractShipController extends TileEntityAbstrac
|
|||
tagCompound.getInteger("moveRight") );
|
||||
setRotationSteps(tagCompound.getByte("rotationSteps"));
|
||||
nameTarget = tagCompound.getString("nameTarget");
|
||||
|
||||
final boolean isConfirmed = tagCompound.hasKey("commandConfirmed") && tagCompound.getBoolean("commandConfirmed");
|
||||
setCommand(tagCompound.getString("commandName"), isConfirmed);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
|
@ -98,9 +99,6 @@ public abstract class TileEntityAbstractShipController extends TileEntityAbstrac
|
|||
public NBTTagCompound writeToNBT(NBTTagCompound tagCompound) {
|
||||
tagCompound = super.writeToNBT(tagCompound);
|
||||
|
||||
tagCompound.setString("commandName", enumShipCommand.getName());
|
||||
tagCompound.setBoolean("commandConfirmed", isCommandConfirmed);
|
||||
|
||||
tagCompound.setInteger("front", getFront());
|
||||
tagCompound.setInteger("right", getRight());
|
||||
tagCompound.setInteger("up", getUp());
|
||||
|
@ -113,6 +111,10 @@ public abstract class TileEntityAbstractShipController extends TileEntityAbstrac
|
|||
tagCompound.setInteger("moveRight", moveRight);
|
||||
tagCompound.setByte("rotationSteps", rotationSteps);
|
||||
tagCompound.setString("nameTarget", nameTarget);
|
||||
|
||||
tagCompound.setString("commandName", enumShipCommand.getName());
|
||||
tagCompound.setBoolean("commandConfirmed", isCommandConfirmed);
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
@ -120,9 +122,6 @@ public abstract class TileEntityAbstractShipController extends TileEntityAbstrac
|
|||
public NBTTagCompound writeItemDropNBT(NBTTagCompound tagCompound) {
|
||||
tagCompound = super.writeItemDropNBT(tagCompound);
|
||||
|
||||
tagCompound.removeTag("commandName");
|
||||
tagCompound.removeTag("commandConfirmed");
|
||||
|
||||
tagCompound.removeTag("front");
|
||||
tagCompound.removeTag("right");
|
||||
tagCompound.removeTag("up");
|
||||
|
@ -135,6 +134,10 @@ public abstract class TileEntityAbstractShipController extends TileEntityAbstrac
|
|||
tagCompound.removeTag("moveRight");
|
||||
tagCompound.removeTag("rotationSteps");
|
||||
tagCompound.removeTag("nameTarget");
|
||||
|
||||
tagCompound.removeTag("commandName");
|
||||
tagCompound.removeTag("commandConfirmed");
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ public class ClientProxy extends CommonProxy {
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
public static ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
public static ModelResourceLocation getModelResourceLocation(@Nonnull final ItemStack itemStack) {
|
||||
final Item item = itemStack.getItem();
|
||||
ResourceLocation resourceLocation = item.getRegistryName();
|
||||
assert resourceLocation != null;
|
||||
|
@ -107,9 +107,9 @@ public class ClientProxy extends CommonProxy {
|
|||
return new ModelResourceLocation(resourceLocation, "inventory");
|
||||
}
|
||||
|
||||
public static void modelInitialisation(final Item item) {
|
||||
public static void modelInitialisation(@Nonnull final Item item) {
|
||||
if (!(item instanceof IItemBase)) {
|
||||
throw new RuntimeException(String.format("Unable to item, expecting an IItemBase instance: %s",
|
||||
throw new RuntimeException(String.format("Unable to initialize item's model, expecting an IItemBase instance: %s",
|
||||
item));
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,8 @@ import net.minecraft.util.text.TextComponentString;
|
|||
public abstract class AbstractCommand extends CommandBase {
|
||||
|
||||
public ITextComponent getPrefix() {
|
||||
return new TextComponentString("/" + getName()).setStyle(Commons.styleHeader).appendSibling(new TextComponentString(" "));
|
||||
return new TextComponentString("/" + getName()).setStyle(Commons.styleHeader)
|
||||
.appendSibling(new TextComponentString(" "));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,21 +15,27 @@ import javax.annotation.Nonnull;
|
|||
|
||||
public class CommandBed extends AbstractCommand {
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getName() {
|
||||
return "wbed";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return getName() + " (<playerName>)"
|
||||
+ "\nplayerName: name of the player home to find. Exact casing is required.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(@Nonnull final MinecraftServer server, @Nonnull final ICommandSender commandSender, @Nonnull final String[] args) {
|
||||
// parse arguments
|
||||
//noinspection StatementWithEmptyBody
|
||||
EntityPlayerMP[] entityPlayerMPs = null;
|
||||
if (args.length == 0) {
|
||||
if (commandSender instanceof EntityPlayerMP) {
|
||||
|
@ -105,11 +111,4 @@ public class CommandBed extends AbstractCommand {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return getName() + " (<playerName>)"
|
||||
+ "\nplayerName: name of the player home to find. Exact casing is required.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,7 +97,7 @@ public class CommandEntity extends AbstractCommand {
|
|||
|
||||
WarpDrive.logger.info(String.format("/%s %d '*%s*' %s", getName(), radius, filter, kill));
|
||||
|
||||
List<Entity> entities;
|
||||
final List<Entity> entities;
|
||||
if (radius <= 0) {
|
||||
final World world;
|
||||
if (commandSender instanceof EntityPlayerMP) {
|
||||
|
|
|
@ -11,22 +11,28 @@ import javax.annotation.Nonnull;
|
|||
|
||||
public class CommandFind extends AbstractCommand {
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getName() {
|
||||
return "wfind";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return getName() + " (<shipName>)"
|
||||
+ "\nshipName: name of the ship to find. Exact casing is preferred.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(@Nonnull final MinecraftServer server, @Nonnull final ICommandSender commandSender, @Nonnull final String[] args) {
|
||||
// parse arguments
|
||||
//noinspection StatementWithEmptyBody
|
||||
String nameToken;
|
||||
final String nameToken;
|
||||
if (args.length == 0) {
|
||||
Commons.addChatMessage(commandSender, new TextComponentString(getUsage(commandSender)));
|
||||
return;
|
||||
|
@ -51,11 +57,4 @@ public class CommandFind extends AbstractCommand {
|
|||
final String result = WarpDrive.starMap.find(nameToken);
|
||||
Commons.addChatMessage(commandSender, new TextComponentString(result));
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return getName() + " (<shipName>)"
|
||||
+ "\nshipName: name of the ship to find. Exact casing is preferred.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ public class CommandGenerate extends AbstractCommand {
|
|||
@Nonnull
|
||||
@Override
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return String.format("/%s <structure group> [<structure name>]\nStructure groups are ship, station, astfield, %s",
|
||||
return String.format("/%s <structure group> (<structure name>)\nStructure groups are ship, station, astfield, %s",
|
||||
getName(),
|
||||
StructureManager.getGroups().replace("\"", "") );
|
||||
}
|
||||
|
|
|
@ -12,6 +12,12 @@ import net.minecraft.server.MinecraftServer;
|
|||
|
||||
public class CommandInvisible extends AbstractCommand {
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getName() {
|
||||
return "invisible";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 4;
|
||||
|
@ -19,10 +25,10 @@ public class CommandInvisible extends AbstractCommand {
|
|||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getName() {
|
||||
return "invisible";
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return "/invisible [player]";
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void execute(@Nonnull final MinecraftServer server, @Nonnull final ICommandSender commandSender, @Nonnull final String[] args) {
|
||||
EntityPlayer player = commandSender instanceof EntityPlayer ? (EntityPlayer) commandSender : null;
|
||||
|
@ -47,10 +53,4 @@ public class CommandInvisible extends AbstractCommand {
|
|||
// Toggle invisibility
|
||||
player.setInvisible(!player.isInvisible());
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return "/invisible [player]";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,12 @@ import net.minecraft.util.text.TextComponentTranslation;
|
|||
|
||||
public class CommandReload extends AbstractCommand {
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getName() {
|
||||
return "wreload";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 2;
|
||||
|
@ -18,8 +24,8 @@ public class CommandReload extends AbstractCommand {
|
|||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getName() {
|
||||
return "wreload";
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return "/wreload";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -28,10 +34,4 @@ public class CommandReload extends AbstractCommand {
|
|||
Commons.addChatMessage(commandSender, new TextComponentTranslation("warpdrive.command.configuration_reloaded").setStyle(Commons.styleCorrect));
|
||||
Commons.addChatMessage(commandSender, new TextComponentTranslation("warpdrive.command.liability_warning").setStyle(Commons.styleWarning));
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return "/wreload";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,12 @@ import net.minecraft.world.WorldServer;
|
|||
|
||||
public class CommandSpace extends AbstractCommand {
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getName() {
|
||||
return "space";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 2;
|
||||
|
@ -30,8 +36,8 @@ public class CommandSpace extends AbstractCommand {
|
|||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getName() {
|
||||
return "space";
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return "/space (<playerName>) ([overworld|nether|end|theend|space|hyper|hyperspace|<dimensionId>])";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -207,10 +213,4 @@ public class CommandSpace extends AbstractCommand {
|
|||
Commons.moveEntity(entityPlayerMP, worldTarget, new Vector3(xTarget + 0.5D, yTarget + 0.2D, zTarget + 0.5D));
|
||||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getUsage(@Nonnull final ICommandSender commandSender) {
|
||||
return "/space (<playerName>) ([overworld|nether|end|theend|space|hyper|hyperspace|<dimensionId>])";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import cr0s.warpdrive.block.hull.BlockHullGlass;
|
|||
import cr0s.warpdrive.block.hull.BlockHullSlab;
|
||||
import cr0s.warpdrive.block.hull.BlockHullStairs;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
@ -689,7 +690,8 @@ public class Dictionary {
|
|||
}
|
||||
}
|
||||
|
||||
private static String getHashMessage(final HashSet hashSet) {
|
||||
@Nonnull
|
||||
private static String getHashMessage(@Nonnull final HashSet hashSet) {
|
||||
final StringBuilder message = new StringBuilder();
|
||||
for (final Object object : hashSet) {
|
||||
if (message.length() > 0) {
|
||||
|
@ -706,7 +708,8 @@ public class Dictionary {
|
|||
return message.toString();
|
||||
}
|
||||
|
||||
private static String getHashMessage(final HashMap<Block, Integer> hashMap) {
|
||||
@Nonnull
|
||||
private static String getHashMessage(@Nonnull final HashMap<Block, Integer> hashMap) {
|
||||
final StringBuilder message = new StringBuilder();
|
||||
for (final Entry<Block, Integer> entry : hashMap.entrySet()) {
|
||||
if (message.length() > 0) {
|
||||
|
@ -717,9 +720,9 @@ public class Dictionary {
|
|||
return message.toString();
|
||||
}
|
||||
|
||||
public static NBTBase writeItemsToNBT(final HashSet<Item> hashSetItem) {
|
||||
@Nonnull
|
||||
public static NBTBase writeItemsToNBT(@Nonnull final HashSet<Item> hashSetItem) {
|
||||
final NBTTagList nbtTagList = new NBTTagList();
|
||||
assert hashSetItem != null;
|
||||
for (final Item item : hashSetItem) {
|
||||
assert item.getRegistryName() != null;
|
||||
final String registryName = item.getRegistryName().toString();
|
||||
|
@ -728,8 +731,8 @@ public class Dictionary {
|
|||
return nbtTagList;
|
||||
}
|
||||
|
||||
public static HashSet<Item> readItemsFromNBT(final NBTTagList nbtTagList) {
|
||||
assert nbtTagList != null;
|
||||
@Nonnull
|
||||
public static HashSet<Item> readItemsFromNBT(@Nonnull final NBTTagList nbtTagList) {
|
||||
final int size = nbtTagList.tagCount();
|
||||
final HashSet<Item> hashSetItem = new HashSet<>(Math.max(8, size));
|
||||
|
||||
|
@ -747,6 +750,7 @@ public class Dictionary {
|
|||
return hashSetItem;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static String getId(final Entity entity) {
|
||||
final ResourceLocation resourceLocation = EntityList.getKey(entity);
|
||||
return resourceLocation == null ? "-null-" : resourceLocation.toString();
|
||||
|
|
|
@ -212,26 +212,32 @@ public class Recipes {
|
|||
itemStackMotors = new ItemStack[] { itemStackMotorLV, itemStackMotorMV, itemStackMotorHV, itemStackMotorEV };
|
||||
|
||||
// integrate with iron bars from all mods
|
||||
barsIron = WarpDriveConfig.getOreOrItemStack("ore:barsIron", 0,
|
||||
"minecraft:iron_bars", 0);
|
||||
barsIron = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:barsIron", 0,
|
||||
"minecraft:iron_bars", 0 );
|
||||
|
||||
// integrate with steel and aluminium ingots from all mods
|
||||
ingotIronOrSteel = WarpDriveConfig.getOreOrItemStack("ore:ingotSteel", 0,
|
||||
"ore:ingotAluminium", 0,
|
||||
"ore:ingotAluminum", 0,
|
||||
"ore:ingotIron", 0);
|
||||
ingotIronOrSteel = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:ingotSteel", 0,
|
||||
"ore:ingotAluminium", 0,
|
||||
"ore:ingotAluminum", 0,
|
||||
"ore:ingotIron", 0 );
|
||||
|
||||
// integrate with rubber from all mods
|
||||
rubber = WarpDriveConfig.getOreOrItemStack("ore:plateRubber", 0, // comes with GregTech
|
||||
"ore:itemRubber", 0 ); // comes with WarpDrive, IndustrialCraft2, IndustrialForegoing, TechReborn
|
||||
rubber = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:plateRubber", 0, // comes with GregTech
|
||||
"ore:itemRubber", 0 ); // comes with WarpDrive, IndustrialCraft2, IndustrialForegoing, TechReborn
|
||||
|
||||
// integrate with circuits from all mods
|
||||
goldNuggetOrBasicCircuit = WarpDriveConfig.getOreOrItemStack("ore:circuitBasic", 0, // comes with IndustrialCraft2, Mekanism, VoltzEngine
|
||||
"ore:nuggetGold", 0);
|
||||
goldIngotOrAdvancedCircuit = WarpDriveConfig.getOreOrItemStack("ore:circuitAdvanced", 0, // comes with IndustrialCraft2, Mekanism, VoltzEngine
|
||||
"ore:ingotGold", 0);
|
||||
emeraldOrSuperiorCircuit = WarpDriveConfig.getOreOrItemStack("ore:circuitElite", 0, // comes with Mekanism, VoltzEngine
|
||||
"ore:gemEmerald", 0);
|
||||
goldNuggetOrBasicCircuit = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:circuitBasic", 0, // comes with IndustrialCraft2, Mekanism, VoltzEngine
|
||||
"ore:nuggetGold", 0 );
|
||||
goldIngotOrAdvancedCircuit = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:circuitAdvanced", 0, // comes with IndustrialCraft2, Mekanism, VoltzEngine
|
||||
"ore:ingotGold", 0 );
|
||||
emeraldOrSuperiorCircuit = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:circuitElite", 0, // comes with Mekanism, VoltzEngine
|
||||
"ore:gemEmerald", 0 );
|
||||
|
||||
// Iridium block is just that
|
||||
if (WarpDriveConfig.isGregtechLoaded) {
|
||||
|
@ -343,10 +349,11 @@ public class Recipes {
|
|||
}
|
||||
|
||||
// Capacitive crystal is 2 Redstone block, 4 Paper, 1 Regeneration potion, 2 (lithium dust or electrum dust or electrical steel ingot or gold ingot)
|
||||
final Object lithiumOrElectrum = WarpDriveConfig.getOreOrItemStack("ore:dustLithium", 0, // comes with GregTech, Industrial Craft 2 and Mekanism
|
||||
"ore:dustElectrum", 0, // comes with ImmersiveEngineering, ThermalFoundation, Metallurgy
|
||||
"ore:ingotElectricalSteel", 0, // comes with EnderIO
|
||||
"ore:ingotGold", 0);
|
||||
final Object lithiumOrElectrum = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:dustLithium", 0, // comes with GregTech, Industrial Craft 2 and Mekanism
|
||||
"ore:dustElectrum", 0, // comes with ImmersiveEngineering, ThermalFoundation, Metallurgy
|
||||
"ore:ingotElectricalSteel", 0, // comes with EnderIO
|
||||
"ore:ingotGold", 0 );
|
||||
// (Lithium is processed from nether quartz)
|
||||
// (IC2 Experimental is 1 Lithium dust from 18 nether quartz)
|
||||
// Regeneration II (ghast tear + glowstone)
|
||||
|
@ -356,7 +363,7 @@ public class Recipes {
|
|||
'R', itemStackStrongRegeneration,
|
||||
'r', "blockRedstone",
|
||||
'l', lithiumOrElectrum,
|
||||
'p', Items.PAPER));
|
||||
'p', Items.PAPER ));
|
||||
|
||||
// Diamond crystal
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
|
@ -384,17 +391,18 @@ public class Recipes {
|
|||
'e', Items.ENDER_PEARL,
|
||||
'B', barsIron,
|
||||
'r', Items.REDSTONE,
|
||||
'g', nuggetGoldOrSilver));
|
||||
'g', nuggetGoldOrSilver ));
|
||||
|
||||
// Diamond coil is 6 Iron bars, 2 Gold ingots, 1 Diamond crystal, gives 12
|
||||
final Object ingotGoldOrSilver = WarpDriveConfig.getOreOrItemStack("ore:ingotElectrum", 0,
|
||||
"ore:ingotSilver", 0,
|
||||
"ore:ingotGold", 0);
|
||||
final Object ingotGoldOrSilver = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:ingotElectrum", 0,
|
||||
"ore:ingotSilver", 0,
|
||||
"ore:ingotGold", 0 );
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStackNoCache(EnumComponentType.DIAMOND_COIL, 12), false, "bbg", "bdb", "gbb",
|
||||
'b', barsIron,
|
||||
'g', ingotGoldOrSilver,
|
||||
'd', ItemComponent.getItemStack(EnumComponentType.DIAMOND_CRYSTAL)));
|
||||
'd', ItemComponent.getItemStack(EnumComponentType.DIAMOND_CRYSTAL) ));
|
||||
|
||||
// Computer interface is 2 Gold ingot, 2 Wired modems (or redstone), 1 Lead/Tin ingot
|
||||
Object redstoneOrModem = Items.REDSTONE;
|
||||
|
@ -419,46 +427,51 @@ public class Recipes {
|
|||
'G', oreCircuitOrHeavyPressurePlate,
|
||||
'g', "ingotGold",
|
||||
'r', redstoneOrModem,
|
||||
'a', "ingotSolderingAlloy"));
|
||||
'a', "ingotSolderingAlloy" ));
|
||||
}
|
||||
|
||||
// Computer interface: simple output
|
||||
final Object slimeOrTinOrLead = WarpDriveConfig.getOreOrItemStack("ore:ingotTin", 0,
|
||||
"ore:ingotLead", 0,
|
||||
"ore:slimeball", 0);
|
||||
final Object slimeOrTinOrLead = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:ingotTin", 0,
|
||||
"ore:ingotLead", 0,
|
||||
"ore:slimeball", 0 );
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStackNoCache(EnumComponentType.COMPUTER_INTERFACE, outputFactor), false, " ", "rar", "gGg",
|
||||
'G', oreCircuitOrHeavyPressurePlate,
|
||||
'g', "ingotGold",
|
||||
'r', redstoneOrModem,
|
||||
'a', slimeOrTinOrLead));
|
||||
'a', slimeOrTinOrLead ));
|
||||
|
||||
// *** breathing components
|
||||
// Bone charcoal is smelting 1 Bone
|
||||
GameRegistry.addSmelting(Items.BONE, ItemComponent.getItemStackNoCache(EnumComponentType.BONE_CHARCOAL, 1), 1);
|
||||
|
||||
// Activated carbon is 3 bone charcoal, 3 leaves, 2 water bottles, 1 sulfur dust or gunpowder
|
||||
final Object leaves = WarpDriveConfig.getOreOrItemStack("ore:treeLeaves", 0,
|
||||
"minecraft:leaves", 0);
|
||||
final Object gunpowderOrSulfur = WarpDriveConfig.getOreOrItemStack("ore:dustSulfur", 0,
|
||||
"ore:gunpowder", 0,
|
||||
"minecraft:gunpowder", 0);
|
||||
final Object leaves = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:treeLeaves", 0,
|
||||
"minecraft:leaves", 0 );
|
||||
final Object gunpowderOrSulfur = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:dustSulfur", 0,
|
||||
"ore:gunpowder", 0,
|
||||
"minecraft:gunpowder", 0 );
|
||||
final ItemStack itemStackWaterBottle = WarpDriveConfig.getItemStackOrFire("minecraft:potion", 0, "{Potion: \"minecraft:water\"}");
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStack(EnumComponentType.ACTIVATED_CARBON), false, "lll", "aaa", "wgw",
|
||||
'l', leaves,
|
||||
'a', ItemComponent.getItemStack(EnumComponentType.BONE_CHARCOAL),
|
||||
'w', itemStackWaterBottle,
|
||||
'g', gunpowderOrSulfur));
|
||||
'g', gunpowderOrSulfur ));
|
||||
|
||||
// Air canister is 4 iron bars, 2 rubber, 2 yellow wool, 1 tank
|
||||
final Object woolPurple = WarpDriveConfig.getOreOrItemStack("ore:blockWoolPurple", 0,
|
||||
"minecraft:wool", 10);
|
||||
final Object woolPurple = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:blockWoolPurple", 0,
|
||||
"minecraft:wool", 10 );
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStackNoCache(EnumComponentType.AIR_CANISTER, 4), false, "iyi", "rgr", "iyi",
|
||||
'r', rubber,
|
||||
'g', ItemComponent.getItemStack(EnumComponentType.GLASS_TANK),
|
||||
'y', woolPurple,
|
||||
'i', barsIron));
|
||||
'i', barsIron ));
|
||||
|
||||
// *** human interface components
|
||||
// Flat screen is 3 Dyes, 1 Glowstone dust, 2 Paper, 3 Glass panes
|
||||
|
@ -469,7 +482,7 @@ public class Recipes {
|
|||
'B', "dyeBlue",
|
||||
'd', "dustGlowstone",
|
||||
'g', "paneGlassColorless",
|
||||
'p', Items.PAPER));
|
||||
'p', Items.PAPER ));
|
||||
|
||||
// Holographic projector is 5 Flat screens, 1 Zoom, 1 Emerald crystal, 1 Memory crystal
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
|
@ -486,16 +499,16 @@ public class Recipes {
|
|||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStackNoCache(EnumComponentType.GLASS_TANK, 4), false, "sgs", "g g", "sgs",
|
||||
's', "slimeball",
|
||||
'g', "blockGlass"));
|
||||
'g', "blockGlass" ));
|
||||
|
||||
// Motor is 2 Gold nuggets (wires), 3 Iron ingots (steel rods), 4 Iron bars (coils)
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStack(EnumComponentType.MOTOR), false, "bbn", "iii", "bbn",
|
||||
'b', barsIron,
|
||||
'i', "ingotIron",
|
||||
'n', "nuggetGold"));
|
||||
'n', "nuggetGold" ));
|
||||
|
||||
// Pump is 2 Motor, 1 Iron ingot, 2 Tanks, 4 Rubber, gives 2
|
||||
// Pump is 2 Motor, 1 Iron ingot, 2 Tank, 4 Rubber, gives 2
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStackNoCache(EnumComponentType.PUMP, 2), false, "sst", "mim", "tss",
|
||||
's', rubber,
|
||||
|
@ -534,21 +547,21 @@ public class Recipes {
|
|||
'd', "gemDiamond"));
|
||||
}
|
||||
|
||||
// Zoom is 3 Lenses, 2 Iron ingot, 2 Dyes, 2 Redstone
|
||||
// Zoom is 3 Lens, 2 Iron ingot, 2 Dyes, 1 Redstone, 1 Basic motor
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStack(EnumComponentType.ZOOM), false, "dir", "lll", "dit",
|
||||
'r', Items.REDSTONE,
|
||||
'i', ingotIronOrSteel,
|
||||
'l', ItemComponent.getItemStack(EnumComponentType.LENS),
|
||||
't', itemStackMotors[0],
|
||||
'd', "dye"));
|
||||
'd', "dye" ));
|
||||
|
||||
// Diffraction grating is 1 Ghast tear, 3 Iron bars, 3 Glowstone dust
|
||||
// Diffraction grating is 1 Ghast tear, 3 Iron bar, 3 Glowstone block
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStack(EnumComponentType.DIFFRACTION_GRATING), false, " t ", "iii", "ggg",
|
||||
't', Items.GHAST_TEAR,
|
||||
'i', barsIron,
|
||||
'g', Blocks.GLOWSTONE));
|
||||
'g', Blocks.GLOWSTONE ));
|
||||
|
||||
// *** energy components
|
||||
// Power interface is 4 Redstone, 2 Rubber, 3 Gold ingot
|
||||
|
@ -559,9 +572,10 @@ public class Recipes {
|
|||
'r', Items.REDSTONE ));
|
||||
|
||||
// Superconductor is 1 Ender crystal, 4 Power interface, 4 Cryotheum dust/Lapis block/10k Coolant cell
|
||||
final Object coolant = WarpDriveConfig.getOreOrItemStack("ore:dustCryotheum", 0, // comes with ThermalFoundation
|
||||
"ic2:heat_storage", 0, // IC2 Experimental 10k Coolant Cell
|
||||
"ore:blockLapis", 0);
|
||||
final Object coolant = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:dustCryotheum", 0, // comes with ThermalFoundation
|
||||
"ic2:heat_storage", 0, // IC2 Experimental 10k Coolant Cell
|
||||
"ore:blockLapis", 0 );
|
||||
WarpDrive.register(new ShapedOreRecipe(groupComponents,
|
||||
ItemComponent.getItemStack(EnumComponentType.SUPERCONDUCTOR), false, "pcp", "cec", "pcp",
|
||||
'p', ItemComponent.getItemStack(EnumComponentType.POWER_INTERFACE),
|
||||
|
@ -828,14 +842,15 @@ public class Recipes {
|
|||
'M', "blockElectromagnet3"));
|
||||
|
||||
// Lower tier coil is iron, copper or coil
|
||||
final Object ironIngotOrCopperIngotOrCoil = WarpDriveConfig.getOreOrItemStack("gregtech:wire_coil", 0, // GregTech Cupronickel Coil block
|
||||
"ic2:crafting", 5, // IC2 Coil
|
||||
"thermalfoundation:material", 513, // ThermalFoundation Redstone reception coil
|
||||
"immersiveengineering:wirecoil", 1, // ImmersiveEngineering MV wire coil
|
||||
"enderio:item_power_conduit", 1, // EnderIO Enhanced energy conduit
|
||||
"ore:ingotCopper", 0,
|
||||
"ore:ingotSteel", 0,
|
||||
"minecraft:iron_ingot", 0);
|
||||
final Object ironIngotOrCopperIngotOrCoil = WarpDriveConfig.getOreOrItemStack(
|
||||
"gregtech:wire_coil", 0, // GregTech Cupronickel Coil block
|
||||
"ic2:crafting", 5, // IC2 Coil
|
||||
"thermalfoundation:material", 513, // ThermalFoundation Redstone reception coil
|
||||
"immersiveengineering:wirecoil", 1, // ImmersiveEngineering MV wire coil
|
||||
"enderio:item_power_conduit", 1, // EnderIO Enhanced energy conduit
|
||||
"ore:ingotCopper", 0,
|
||||
"ore:ingotSteel", 0,
|
||||
"minecraft:iron_ingot", 0 );
|
||||
|
||||
// Normal electromagnets
|
||||
WarpDrive.register(new ShapedOreRecipe(groupMachines,
|
||||
|
@ -943,11 +958,12 @@ public class Recipes {
|
|||
WarpDrive.itemAirTanks[EnumAirTankTier.SUPERIOR.getIndex()]), "_uncrafting");
|
||||
|
||||
// Air generator is 1 Power interface, 4 Activated carbon, 1 Motor, 1 MV Machine casing, 2 Glass tanks
|
||||
final Object bronzeRotorOrIronBars = WarpDriveConfig.getOreOrItemStack("ore:rotorBronze", 0, // GregTech CE Bronze rotor
|
||||
"ore:plateBronze", 8, // IC2 or ThermalExpansion Bronze plate
|
||||
"ore:gearIronInfinity", 0, // EnderIO Infinity Bimetal Gear
|
||||
"ore:barsIron", 0, // Ore dictionary iron bars
|
||||
"minecraft:iron_bars", 0); // Vanilla iron bars
|
||||
final Object bronzeRotorOrIronBars = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:rotorBronze", 0, // GregTech CE Bronze rotor
|
||||
"ore:plateBronze", 8, // IC2 or ThermalExpansion Bronze plate
|
||||
"ore:gearIronInfinity", 0, // EnderIO Infinity Bimetal Gear
|
||||
"ore:barsIron", 0, // Ore dictionary iron bars
|
||||
"minecraft:iron_bars", 0 );
|
||||
WarpDrive.register(new ShapedOreRecipe(groupMachines,
|
||||
new ItemStack(WarpDrive.blockAirGeneratorTiered[EnumTier.BASIC.getIndex()]), false, "aba", "ata", "gmp",
|
||||
'p', ItemComponent.getItemStack(EnumComponentType.POWER_INTERFACE),
|
||||
|
@ -1088,15 +1104,17 @@ public class Recipes {
|
|||
|
||||
private static void initDetection() {
|
||||
// Radar is 1 motor, 4 Titanium plate (diamond), 1 Quarztite rod (nether quartz), 1 Computer interface, 1 HV Machine casing, 1 Power interface
|
||||
final Object oreCloakingPlate = WarpDriveConfig.getOreOrItemStack("ore:plateTitanium", 0, // GregTech
|
||||
"ore:plateEnderium", 0, // ThermalExpansion
|
||||
"ore:ingotVibrantAlloy", 0, // EnderIO
|
||||
"ore:plateAlloyIridium", 0, // IndustrialCraft2
|
||||
"ore:gemQuartz", 0); // vanilla
|
||||
final Object oreAntenna = WarpDriveConfig.getOreOrItemStack("ore:stickQuartzite", 0, // GregTech
|
||||
"ore:ingotSignalum", 0, // ThermalExpansion
|
||||
"ore:nuggetPulsatingIron", 0, // EnderIO
|
||||
"minecraft:ghast_tear", 0); // vanilla
|
||||
final Object oreCloakingPlate = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:plateTitanium", 0, // GregTech
|
||||
"ore:plateEnderium", 0, // ThermalExpansion
|
||||
"ore:ingotVibrantAlloy", 0, // EnderIO
|
||||
"ore:plateAlloyIridium", 0, // IndustrialCraft2
|
||||
"ore:gemQuartz", 0 );
|
||||
final Object oreAntenna = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:stickQuartzite", 0, // GregTech
|
||||
"ore:ingotSignalum", 0, // ThermalExpansion
|
||||
"ore:nuggetPulsatingIron", 0, // EnderIO
|
||||
"minecraft:ghast_tear", 0 );
|
||||
WarpDrive.register(new ShapedOreRecipe(groupMachines,
|
||||
new ItemStack(WarpDrive.blockRadar), false, "PAP", "PtP", "pmc",
|
||||
't', itemStackMotors[2],
|
||||
|
@ -1138,24 +1156,27 @@ public class Recipes {
|
|||
'p', ItemComponent.getItemStack(EnumComponentType.POWER_INTERFACE)));
|
||||
|
||||
// Cloaking coil is 1 Titanium plate, 4 Reinforced iridium plate, 1 EV Machine casing (Ti) or 1 Beacon, 4 Emerald, 4 Diamond
|
||||
final Object oreGoldIngotOrCoil = WarpDriveConfig.getOreOrItemStack("gregtech:wire_coil", 3, // GregTech Tungstensteel Coil block
|
||||
"ic2:crafting", 5, // IC2 Coil
|
||||
"thermalfoundation:material", 515, // ThermalFoundation Redstone conductance coil
|
||||
"immersiveengineering:connector", 8, // ImmersiveEngineering HV Transformer (coils wires are too cheap)
|
||||
"enderio:item_power_conduit", 2, // EnderIO Ender energy conduit
|
||||
"minecraft:gold_ingot", 0);
|
||||
final Object oreGoldIngotOrTitaniumPlate = WarpDriveConfig.getOreOrItemStack("ore:plateTitanium", 0,
|
||||
"advanced_solar_panels:crafting", 0, // ASP Sunnarium
|
||||
"ore:plateDenseSteel", 0,
|
||||
"thermalfoundation:glass", 6, // ThermalFoundation Hardened Platinum Glass
|
||||
"immersiveengineering:metal_device1", 3, // ImmersiveEngineering Thermoelectric Generator
|
||||
"enderio:item_alloy_ingot", 2, // EnderIO Vibrant alloy (ore:ingotVibrantAlloy)
|
||||
"minecraft:gold_ingot", 0);
|
||||
final Object oreEmeraldOrIridiumPlate = WarpDriveConfig.getOreOrItemStack("ore:plateIridium", 0, // GregTech
|
||||
"ore:plateAlloyIridium", 0, // IndustrialCraft2
|
||||
"enderio:item_material", 42, // EnderIO Frank'N'Zombie
|
||||
"ore:ingotLumium", 0, // ThermalFoundation lumium ingot
|
||||
"ore:gemEmerald", 0);
|
||||
final Object oreGoldIngotOrCoil = WarpDriveConfig.getOreOrItemStack(
|
||||
"gregtech:wire_coil", 3, // GregTech Tungstensteel Coil block
|
||||
"ic2:crafting", 5, // IC2 Coil
|
||||
"thermalfoundation:material", 515, // ThermalFoundation Redstone conductance coil
|
||||
"immersiveengineering:connector", 8, // ImmersiveEngineering HV Transformer (coils wires are too cheap)
|
||||
"enderio:item_power_conduit", 2, // EnderIO Ender energy conduit
|
||||
"minecraft:gold_ingot", 0 );
|
||||
final Object oreGoldIngotOrTitaniumPlate = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:plateTitanium", 0,
|
||||
"advanced_solar_panels:crafting", 0, // ASP Sunnarium
|
||||
"ore:plateDenseSteel", 0,
|
||||
"thermalfoundation:glass", 6, // ThermalFoundation Hardened Platinum Glass
|
||||
"immersiveengineering:metal_device1", 3, // ImmersiveEngineering Thermoelectric Generator
|
||||
"enderio:item_alloy_ingot", 2, // EnderIO Vibrant alloy (ore:ingotVibrantAlloy)
|
||||
"minecraft:gold_ingot", 0 );
|
||||
final Object oreEmeraldOrIridiumPlate = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:plateIridium", 0, // GregTech
|
||||
"ore:plateAlloyIridium", 0, // IndustrialCraft2
|
||||
"enderio:item_material", 42, // EnderIO Frank'N'Zombie
|
||||
"ore:ingotLumium", 0, // ThermalFoundation lumium ingot
|
||||
"ore:gemEmerald", 0 );
|
||||
WarpDrive.register(new ShapedOreRecipe(groupMachines,
|
||||
new ItemStack(WarpDrive.blockCloakingCoil), false, "iti", "cmc", "iti",
|
||||
't', oreGoldIngotOrTitaniumPlate,
|
||||
|
@ -1515,11 +1536,12 @@ public class Recipes {
|
|||
}
|
||||
|
||||
// Tier 2 = 4 Tier 1, 4 GregTech 5 TungstenSteel reinforced block, IC2 Carbon plate, DarkSteel ingots or Obsidian, gives 4
|
||||
final Object oreObsidianTungstenSteelPlate = WarpDriveConfig.getOreOrItemStack("ore:plateTungstenSteel", 0, // GregTech CE TungstenSteel Plate
|
||||
"ic2:crafting", 15, // IC2 Carbon plate
|
||||
"thermalfoundation:glass", 3, // ThermalFoundation Hardened glass
|
||||
"ore:ingotDarkSteel", 0, // EnderIO DarkSteel ingot
|
||||
"minecraft:obsidian", 0);
|
||||
final Object oreObsidianTungstenSteelPlate = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:plateTungstenSteel", 0, // GregTech CE TungstenSteel Plate
|
||||
"ic2:crafting", 15, // IC2 Carbon plate
|
||||
"thermalfoundation:glass", 3, // ThermalFoundation Hardened glass
|
||||
"ore:ingotDarkSteel", 0, // EnderIO DarkSteel ingot
|
||||
"minecraft:obsidian", 0 );
|
||||
for (final EnumDyeColor enumDyeColor : EnumDyeColor.values()) {
|
||||
final int metadataColor = enumDyeColor.getMetadata();
|
||||
WarpDrive.register(new ShapedOreRecipe(groupTaintedHulls,
|
||||
|
@ -1534,10 +1556,11 @@ public class Recipes {
|
|||
}
|
||||
|
||||
// Tier 3 = 4 Tier 2, 1 GregTech Naquadah plate, IC2 Iridium plate, EnderIO Pulsating crystal or Diamond, gives 4
|
||||
final Object oreDiamondOrNaquadahPlate = WarpDriveConfig.getOreOrItemStack("ore:plateNaquadah", 0, // GregTech CE Naquadah plate
|
||||
"ore:plateAlloyIridium", 0, // IC2 Iridium alloy
|
||||
"ore:itemPulsatingCrystal", 0, // EnderIO Pulsating crystal
|
||||
"ore:gemDiamond", 0);
|
||||
final Object oreDiamondOrNaquadahPlate = WarpDriveConfig.getOreOrItemStack(
|
||||
"ore:plateNaquadah", 0, // GregTech CE Naquadah plate
|
||||
"ore:plateAlloyIridium", 0, // IC2 Iridium alloy
|
||||
"ore:itemPulsatingCrystal", 0, // EnderIO Pulsating crystal
|
||||
"ore:gemDiamond", 0 );
|
||||
for (final EnumDyeColor enumDyeColor : EnumDyeColor.values()) {
|
||||
final int metadataColor = enumDyeColor.getMetadata();
|
||||
WarpDrive.register(new ShapedOreRecipe(groupTaintedHulls,
|
||||
|
@ -1724,10 +1747,11 @@ public class Recipes {
|
|||
'b', ItemComponent.getItemStack(EnumComponentType.MEMORY_CRYSTAL)));
|
||||
|
||||
// Laser lift is ...
|
||||
final Object enderPearlOrMagnetizer = WarpDriveConfig.getOreOrItemStack("gregtech:machine", 420, // Gregtech Basic polarizer
|
||||
"ic2:te", 37, // IC2 Magnetizer
|
||||
"ore:ingotPulsatingIron", 0, // EnderIO iron ingot with ender pearl
|
||||
"minecraft:ender_pearl", 0);
|
||||
final Object enderPearlOrMagnetizer = WarpDriveConfig.getOreOrItemStack(
|
||||
"gregtech:machine", 420, // Gregtech Basic polarizer
|
||||
"ic2:te", 37, // IC2 Magnetizer
|
||||
"ore:ingotPulsatingIron", 0, // EnderIO iron ingot with ender pearl
|
||||
"minecraft:ender_pearl", 0 );
|
||||
WarpDrive.register(new ShapedOreRecipe(groupMachines,
|
||||
new ItemStack(WarpDrive.blockLift), false, "wlw", "per", "glg",
|
||||
'r', Items.REDSTONE,
|
||||
|
|
|
@ -56,7 +56,7 @@ public class GlobalPosition {
|
|||
if (chunk != null) {
|
||||
isLoaded = !chunk.unloadQueued;
|
||||
}
|
||||
} catch (NoSuchFieldError exception) {
|
||||
} catch (final NoSuchFieldError exception) {
|
||||
isLoaded = chunkProviderServer.chunkExists(x >> 4, z >> 4);
|
||||
}
|
||||
// skip unloaded chunks
|
||||
|
|
|
@ -8,6 +8,7 @@ import cr0s.warpdrive.block.movement.BlockShipCore;
|
|||
import cr0s.warpdrive.block.movement.TileEntityShipCore;
|
||||
import cr0s.warpdrive.config.WarpDriveConfig;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -225,7 +226,7 @@ public class StarMapRegistry {
|
|||
return String.format("No ship found with name '%s'", nameShip);
|
||||
}
|
||||
|
||||
public StarMapRegistryItem findNearest(final EnumStarMapEntryType enumStarMapEntryType, final World world, final BlockPos blockPos) {
|
||||
public StarMapRegistryItem findNearest(final EnumStarMapEntryType enumStarMapEntryType, @Nonnull final World world, @Nonnull final BlockPos blockPos) {
|
||||
final CopyOnWriteArraySet<StarMapRegistryItem> setStarMapRegistryItems = registry.get(world.provider.getDimension());
|
||||
if (setStarMapRegistryItems == null) {
|
||||
return null;
|
||||
|
@ -253,7 +254,7 @@ public class StarMapRegistry {
|
|||
return result;
|
||||
}
|
||||
|
||||
public void onBlockUpdated(final World world, final BlockPos blockPos, final IBlockState blockState) {
|
||||
public void onBlockUpdated(@Nonnull final World world, @Nonnull final BlockPos blockPos, final IBlockState blockState) {
|
||||
final CopyOnWriteArraySet<StarMapRegistryItem> setStarMapRegistryItems = registry.get(world.provider.getDimension());
|
||||
if (setStarMapRegistryItems == null) {
|
||||
return;
|
||||
|
@ -435,7 +436,7 @@ public class StarMapRegistry {
|
|||
}
|
||||
}
|
||||
|
||||
public boolean isWarpCoreIntersectsWithOthers(final TileEntityShipCore shipCore1) {
|
||||
public boolean isWarpCoreIntersectsWithOthers(@Nonnull final TileEntityShipCore shipCore1) {
|
||||
cleanup();
|
||||
|
||||
if (!shipCore1.isValid()) {
|
||||
|
|
|
@ -3,6 +3,7 @@ package cr0s.warpdrive.data;
|
|||
import cr0s.warpdrive.WarpDrive;
|
||||
import cr0s.warpdrive.api.IStarMapRegistryTileEntity;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.UUID;
|
||||
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
@ -87,7 +88,7 @@ public class StarMapRegistryItem extends GlobalPosition {
|
|||
name = tileEntity.getStarMapName();
|
||||
}
|
||||
|
||||
public boolean contains(final BlockPos blockPos) {
|
||||
public boolean contains(@Nonnull final BlockPos blockPos) {
|
||||
return minX <= blockPos.getX() && blockPos.getX() <= maxX
|
||||
&& minY <= blockPos.getY() && blockPos.getY() <= maxY
|
||||
&& minZ <= blockPos.getZ() && blockPos.getZ() <= maxZ;
|
||||
|
|
|
@ -2,6 +2,8 @@ package cr0s.warpdrive.event;
|
|||
|
||||
import cr0s.warpdrive.api.IItemBase;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
|
@ -11,7 +13,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
|||
public class ItemHandler {
|
||||
|
||||
@SubscribeEvent
|
||||
public void onItemExpireEvent(final ItemExpireEvent event) {
|
||||
public void onItemExpireEvent(@Nonnull final ItemExpireEvent event) {
|
||||
if (event.getEntityItem() == null) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import cr0s.warpdrive.data.Vector3;
|
|||
import cr0s.warpdrive.data.VectorI;
|
||||
import cr0s.warpdrive.network.PacketHandler;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
|
@ -95,7 +96,7 @@ public class JumpSequencer extends AbstractSequencer {
|
|||
protected final JumpShip ship;
|
||||
private boolean betweenWorlds;
|
||||
private boolean isPluginCheckDone = false;
|
||||
private WarpDriveText firstAdjustmentReason = new WarpDriveText();
|
||||
private WarpDriveText firstAdjustmentReason = null;
|
||||
|
||||
private long msCounter = 0;
|
||||
private int ticks = 0;
|
||||
|
@ -673,13 +674,15 @@ public class JumpSequencer extends AbstractSequencer {
|
|||
}
|
||||
|
||||
{
|
||||
final BlockPos target1 = transformation.apply(ship.minX, ship.minY, ship.minZ);
|
||||
final BlockPos target2 = transformation.apply(ship.maxX, ship.maxY, ship.maxZ);
|
||||
final AxisAlignedBB aabbSource = new AxisAlignedBB(ship.minX, ship.minY, ship.minZ, ship.maxX, ship.maxY, ship.maxZ);
|
||||
final BlockPos blockPosMinAtTarget = transformation.apply(ship.minX, ship.minY, ship.minZ);
|
||||
final BlockPos blockPosMaxAtTarget = transformation.apply(ship.maxX, ship.maxY, ship.maxZ);
|
||||
final AxisAlignedBB aabbSource = new AxisAlignedBB(
|
||||
ship.minX, ship.minY, ship.minZ,
|
||||
ship.maxX, ship.maxY, ship.maxZ);
|
||||
aabbSource.expand(1.0D, 1.0D, 1.0D);
|
||||
final AxisAlignedBB aabbTarget = new AxisAlignedBB(
|
||||
Math.min(target1.getX(), target2.getX()), Math.min(target1.getY(), target2.getY()), Math.min(target1.getZ(), target2.getZ()),
|
||||
Math.max(target1.getX(), target2.getX()), Math.max(target1.getY(), target2.getY()), Math.max(target1.getZ(), target2.getZ()));
|
||||
blockPosMinAtTarget.getX(), blockPosMinAtTarget.getY(), blockPosMinAtTarget.getZ(),
|
||||
blockPosMaxAtTarget.getX(), blockPosMaxAtTarget.getY(), blockPosMaxAtTarget.getZ() );
|
||||
// Validate positions aren't overlapping
|
||||
if ( shipMovementType != EnumShipMovementType.INSTANTIATE
|
||||
&& shipMovementType != EnumShipMovementType.RESTORE
|
||||
|
@ -824,7 +827,7 @@ public class JumpSequencer extends AbstractSequencer {
|
|||
}
|
||||
}
|
||||
|
||||
protected boolean computeTargetWorld(final CelestialObject celestialObjectSource, final EnumShipMovementType shipMovementType, final WarpDriveText reason) {
|
||||
protected boolean computeTargetWorld(final CelestialObject celestialObjectSource, @Nonnull final EnumShipMovementType shipMovementType, final WarpDriveText reason) {
|
||||
switch (shipMovementType) {
|
||||
case INSTANTIATE:
|
||||
case RESTORE:
|
||||
|
@ -1105,7 +1108,7 @@ public class JumpSequencer extends AbstractSequencer {
|
|||
break;
|
||||
|
||||
case NONE:
|
||||
break;
|
||||
// break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1286,7 +1289,6 @@ public class JumpSequencer extends AbstractSequencer {
|
|||
/**
|
||||
* Finishing jump: cleanup, collision effects and delete self
|
||||
**/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected void state_finishing() {
|
||||
LocalProfiler.start("Jump.finishing()");
|
||||
|
||||
|
@ -1663,6 +1665,7 @@ public class JumpSequencer extends AbstractSequencer {
|
|||
WarpDrive.logger.warn(String.format("Second NBT is %s", nbtTagCompound2));
|
||||
}
|
||||
return 0;
|
||||
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ public class TooltipHandler {
|
|||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SubscribeEvent(priority = EventPriority.HIGHEST)
|
||||
public void onTooltipEvent_first(final ItemTooltipEvent event) {
|
||||
public void onTooltipEvent_first(@Nonnull final ItemTooltipEvent event) {
|
||||
if (event.getEntityPlayer() == null) {
|
||||
return;
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ public class TooltipHandler {
|
|||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
||||
public void onTooltipEvent_last(final ItemTooltipEvent event) {
|
||||
public void onTooltipEvent_last(@Nonnull final ItemTooltipEvent event) {
|
||||
if (event.getEntityPlayer() == null) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -46,9 +46,9 @@ public class ItemAbstractBase extends Item implements IItemBase {
|
|||
ClientProxy.modelInitialisation(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nonnull
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
return ClientProxy.getModelResourceLocation(itemStack);
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
@ -34,6 +35,7 @@ public class ItemComponent extends ItemAbstractBase implements IAirContainerItem
|
|||
itemStackCache = new ItemStack[EnumComponentType.length];
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static ItemStack getItemStack(final EnumComponentType enumComponentType) {
|
||||
if (enumComponentType != null) {
|
||||
final int damage = enumComponentType.ordinal();
|
||||
|
@ -42,7 +44,7 @@ public class ItemComponent extends ItemAbstractBase implements IAirContainerItem
|
|||
}
|
||||
return itemStackCache[damage];
|
||||
}
|
||||
return null;
|
||||
return new ItemStack(Blocks.FIRE);
|
||||
}
|
||||
|
||||
public static ItemStack getItemStackNoCache(final EnumComponentType enumComponentType, final int amount) {
|
||||
|
@ -70,8 +72,8 @@ public class ItemComponent extends ItemAbstractBase implements IAirContainerItem
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
final int damage = itemStack.getItemDamage();
|
||||
ResourceLocation resourceLocation = getRegistryName();
|
||||
|
|
|
@ -45,7 +45,7 @@ public class ItemElectromagneticCell extends ItemAbstractBase implements IPartic
|
|||
addPropertyOverride(new ResourceLocation(WarpDrive.MODID, "fill"), new IItemPropertyGetter() {
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public float apply(@Nonnull ItemStack itemStack, @Nullable World world, @Nullable EntityLivingBase entity) {
|
||||
public float apply(@Nonnull final ItemStack itemStack, @Nullable final World world, @Nullable final EntityLivingBase entity) {
|
||||
final ParticleStack particleStack = getParticleStack(itemStack);
|
||||
if (particleStack != null) {
|
||||
return (float) particleStack.getAmount() / getCapacity(itemStack);
|
||||
|
@ -56,8 +56,9 @@ public class ItemElectromagneticCell extends ItemAbstractBase implements IPartic
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(ItemStack itemStack) {
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
String variant = "empty";
|
||||
final ParticleStack particleStack = getParticleStack(itemStack);
|
||||
if (particleStack != null) {
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
|||
import net.minecraft.client.util.ITooltipFlag;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
@ -42,6 +43,7 @@ public class ItemForceFieldShape extends ItemAbstractBase {
|
|||
itemStackCache = new ItemStack[EnumForceFieldShape.length];
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static ItemStack getItemStack(final EnumForceFieldShape forceFieldShape) {
|
||||
if (forceFieldShape != null) {
|
||||
final int damage = forceFieldShape.ordinal();
|
||||
|
@ -50,7 +52,7 @@ public class ItemForceFieldShape extends ItemAbstractBase {
|
|||
}
|
||||
return itemStackCache[damage];
|
||||
}
|
||||
return null;
|
||||
return new ItemStack(Blocks.FIRE);
|
||||
}
|
||||
|
||||
public static ItemStack getItemStackNoCache(final EnumForceFieldShape forceFieldShape, final int amount) {
|
||||
|
@ -80,8 +82,8 @@ public class ItemForceFieldShape extends ItemAbstractBase {
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
final int damage = itemStack.getItemDamage();
|
||||
ResourceLocation resourceLocation = getRegistryName();
|
||||
|
|
|
@ -79,8 +79,8 @@ public class ItemForceFieldUpgrade extends ItemAbstractBase {
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
final int damage = itemStack.getItemDamage();
|
||||
ResourceLocation resourceLocation = getRegistryName();
|
||||
|
|
|
@ -43,7 +43,7 @@ public class ItemPlasmaTorch extends ItemAbstractBase implements IParticleContai
|
|||
addPropertyOverride(new ResourceLocation(WarpDrive.MODID, "fill"), new IItemPropertyGetter() {
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public float apply(@Nonnull ItemStack itemStack, @Nullable World world, @Nullable EntityLivingBase entity) {
|
||||
public float apply(@Nonnull final ItemStack itemStack, @Nullable final World world, @Nullable final EntityLivingBase entity) {
|
||||
final ParticleStack particleStack = getParticleStack(itemStack);
|
||||
if (particleStack != null) {
|
||||
return (float) particleStack.getAmount() / getCapacity(itemStack);
|
||||
|
@ -54,8 +54,9 @@ public class ItemPlasmaTorch extends ItemAbstractBase implements IParticleContai
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(ItemStack itemStack) {
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
String variant = "empty";
|
||||
final ParticleStack particleStack = getParticleStack(itemStack);
|
||||
if (particleStack != null) {
|
||||
|
@ -175,7 +176,7 @@ public class ItemPlasmaTorch extends ItemAbstractBase implements IParticleContai
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getCapacity(ItemStack container) {
|
||||
public int getCapacity(final ItemStack container) {
|
||||
return WarpDriveConfig.PLASMA_TORCH_CAPACITY_BY_TIER[enumTier.getIndex()];
|
||||
}
|
||||
|
||||
|
|
|
@ -67,8 +67,8 @@ public class ItemTuningDriver extends ItemAbstractBase implements IWarpTool {
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
final int damage = itemStack.getItemDamage();
|
||||
ResourceLocation resourceLocation = getRegistryName();
|
||||
|
@ -266,9 +266,9 @@ public class ItemTuningDriver extends ItemAbstractBase implements IWarpTool {
|
|||
|
||||
@Nonnull
|
||||
@Override
|
||||
public EnumActionResult onItemUse(final EntityPlayer entityPlayer,
|
||||
final World world, final BlockPos blockPos, final EnumHand hand,
|
||||
final EnumFacing facing, final float hitX, final float hitY, final float hitZ) {
|
||||
public EnumActionResult onItemUse(@Nonnull final EntityPlayer entityPlayer,
|
||||
@Nonnull final World world, @Nonnull final BlockPos blockPos, @Nonnull final EnumHand hand,
|
||||
@Nonnull final EnumFacing facing, final float hitX, final float hitY, final float hitZ) {
|
||||
if (world.isRemote) {
|
||||
return EnumActionResult.FAIL;
|
||||
}
|
||||
|
|
|
@ -59,8 +59,8 @@ public class ItemTuningFork extends ItemAbstractBase implements IWarpTool {
|
|||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public ModelResourceLocation getModelResourceLocation(final ItemStack itemStack) {
|
||||
final int damage = itemStack.getItemDamage();
|
||||
ResourceLocation resourceLocation = getRegistryName();
|
||||
|
@ -104,9 +104,9 @@ public class ItemTuningFork extends ItemAbstractBase implements IWarpTool {
|
|||
|
||||
@Nonnull
|
||||
@Override
|
||||
public EnumActionResult onItemUse(final EntityPlayer entityPlayer,
|
||||
final World world, final BlockPos blockPos, final EnumHand hand,
|
||||
final EnumFacing facing, final float hitX, final float hitY, final float hitZ) {
|
||||
public EnumActionResult onItemUse(@Nonnull final EntityPlayer entityPlayer,
|
||||
@Nonnull final World world, @Nonnull final BlockPos blockPos, @Nonnull final EnumHand hand,
|
||||
@Nonnull final EnumFacing enumFacing, final float hitX, final float hitY, final float hitZ) {
|
||||
if (world.isRemote) {
|
||||
return EnumActionResult.FAIL;
|
||||
}
|
||||
|
|
|
@ -31,9 +31,9 @@ public class ItemWrench extends ItemAbstractBase implements IWarpTool {
|
|||
|
||||
@Nonnull
|
||||
@Override
|
||||
public EnumActionResult onItemUse(final EntityPlayer entityPlayer,
|
||||
final World world, final BlockPos blockPos, final EnumHand hand,
|
||||
final EnumFacing facing, final float hitX, final float hitY, final float hitZ) {
|
||||
public EnumActionResult onItemUse(@Nonnull final EntityPlayer entityPlayer,
|
||||
@Nonnull final World world, @Nonnull final BlockPos blockPos, @Nonnull final EnumHand hand,
|
||||
@Nonnull final EnumFacing facing, final float hitX, final float hitY, final float hitZ) {
|
||||
if (world.isRemote) {
|
||||
return EnumActionResult.FAIL;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue