This commit is contained in:
modmuss50 2016-06-05 19:43:28 +01:00
commit 895319ed67
32 changed files with 342 additions and 194 deletions

View file

@ -1,9 +1,11 @@
package techreborn.client;
import net.minecraft.client.Minecraft;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.client.model.ModelLoader;
import techreborn.init.ModBlocks;
import techreborn.init.ModItems;
public class RegisterItemJsons
{
@ -15,12 +17,36 @@ public class RegisterItemJsons
private static void registerItems()
{
register(ModItems.reBattery, "reBattery");
register(ModItems.lithiumBattery, "lithiumBattery");
register(ModItems.energyCrystal, "energyCrystal");
register(ModItems.lapotronCrystal, "lapotronCrystal");
register(ModItems.nanosaber, "nanosaber");
}
private static void registerBlocks()
{
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(
Item.getItemFromBlock(ModBlocks.ironFence), 0,
new ModelResourceLocation("techreborn:ironFence", "inventory"));
register(ModBlocks.ironFence, "ironFence");
}
private static void register(Item item, int meta, String name)
{
ModelLoader.setCustomModelResourceLocation(item, meta,
new ModelResourceLocation("techreborn:" + name, "inventory"));
}
private static void register(Item item, String name)
{
register(item, 0, name);
}
private static void register(Block block, int meta, String name)
{
register(Item.getItemFromBlock(block), meta, name);
}
private static void register(Block block, String name)
{
register(Item.getItemFromBlock(block), 0, name);
}
}

View file

@ -111,6 +111,15 @@ import java.util.List;
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidSodiumpersulfate));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidTritium));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidWolframium));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidSulfur));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidSulfuricAcid));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidCarbon));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidCarbonFiber));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidNitroCarbon));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidSodiumSulfide));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidDiesel));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidNitroDiesel));
jeiHelpers.getItemBlacklist().addItemToBlacklist(new ItemStack(ModFluids.BlockFluidOil));
registry.addRecipeCategories(new AlloySmelterRecipeCategory(guiHelper),
new AssemblingMachineRecipeCategory(guiHelper), new BlastFurnaceRecipeCategory(guiHelper),

View file

@ -82,6 +82,7 @@ public class ConfigTechReborn
public static boolean FreqTransmitterChat;
public static boolean FreqTransmitterTooltip;
public static boolean NanosaberChat;
// EU/T
public static int CloakingDeviceEUTick;
// Crafting
@ -373,6 +374,10 @@ public class ConfigTechReborn
.get(CATEGORY_FEATURES, "Frequency Transmitter tooltips", true, "Allow Frequency Transmitter to display tooltip info")
.getBoolean(true);
NanosaberChat = config
.get(CATEGORY_FEATURES, "Nanosaber Chat messages", true, "Allow Nanosaber chat messages")
.getBoolean(true);
enableGemArmorAndTools = config.get(CATEGORY_FEATURES, "Gem tools and armor", true, "Should the gem tools and armor be added to the game").getBoolean(true);
// Crafting

View file

@ -0,0 +1,15 @@
package techreborn.items;
import net.minecraft.item.Item;
import techreborn.client.TechRebornCreativeTab;
public class ItemTRNoDestroy extends Item
{
public ItemTRNoDestroy()
{
setNoRepair();
setCreativeTab(TechRebornCreativeTab.instance);
}
}

View file

@ -1,18 +1,22 @@
package techreborn.items.battery;
import java.util.List;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.IItemPropertyGetter;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import reborncore.api.power.IEnergyItemInfo;
import reborncore.common.powerSystem.PoweredItem;
import techreborn.client.TechRebornCreativeTab;
import techreborn.items.ItemTextureBase;
import techreborn.items.ItemTRNoDestroy;
public class ItemBattery extends ItemTextureBase implements IEnergyItemInfo
import javax.annotation.Nullable;
import java.util.List;
public class ItemBattery extends ItemTRNoDestroy implements IEnergyItemInfo
{
String name = "null";
@ -30,7 +34,18 @@ public class ItemBattery extends ItemTextureBase implements IEnergyItemInfo
this.maxEnergy=maxEnergy;
this.maxTransfer=maxTransfer;
this.tier=tier;
setCreativeTab(TechRebornCreativeTab.instance);
this.addPropertyOverride(new ResourceLocation("techreborn:empty"), new IItemPropertyGetter()
{
@SideOnly(Side.CLIENT) public float apply(ItemStack stack, @Nullable World worldIn,
@Nullable EntityLivingBase entityIn)
{
if (stack != null && PoweredItem.getEnergy(stack) == 0.0)
{
return 1.0F;
}
return 0.0F;
}
});
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@ -88,16 +103,4 @@ public class ItemBattery extends ItemTextureBase implements IEnergyItemInfo
{
return tier;
}
@Override
public String getTextureName(int damage)
{
return "techreborn:items/tool/"+name;
}
@Override
public int getMaxMeta()
{
return 1;
}
}

View file

@ -1,8 +1,10 @@
package techreborn.items.battery;
public class ItemReBattery extends ItemBattery {
public class ItemReBattery extends ItemBattery
{
public ItemReBattery() {
public ItemReBattery()
{
super("rebattery", 10000, 64, 1);
}
}

View file

@ -1,187 +1,206 @@
package techreborn.items.tools;
import java.util.List;
import me.modmuss50.jsonDestroyer.api.IHandHeld;
import me.modmuss50.jsonDestroyer.api.ITexturedItem;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.IItemPropertyGetter;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.translation.I18n;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import reborncore.RebornCore;
import reborncore.api.power.IEnergyItemInfo;
import reborncore.common.powerSystem.PoweredItem;
import reborncore.common.util.ItemNBTHelper;
import reborncore.common.util.ChatUtils;
import techreborn.client.TechRebornCreativeTab;
import techreborn.lib.ModInfo;
import techreborn.config.ConfigTechReborn;
import techreborn.init.ModItems;
import techreborn.lib.MessageIDs;
import net.minecraft.item.Item.ToolMaterial;
public class ItemNanosaber extends ItemSword implements IEnergyItemInfo, ITexturedItem, IHandHeld
import javax.annotation.Nullable;
import java.util.List;
public class ItemNanosaber extends ItemSword implements IEnergyItemInfo
{
public static int tier = 1;
public int maxCharge = 1;
public int cost = 250;
public float unpoweredSpeed = 2.0F;
public double transferLimit = 100;
public ItemNanosaber()
{
super(ToolMaterial.DIAMOND);
setNoRepair();
setCreativeTab(TechRebornCreativeTab.instance);
setMaxStackSize(1);
setMaxDamage(240);
setMaxDamage(1);
setUnlocalizedName("techreborn.nanosaber");
RebornCore.jsonDestroyer.registerObject(this);
this.maxCharge = 1000;
this.tier = 2;
this.addPropertyOverride(new ResourceLocation("techreborn:active"), new IItemPropertyGetter()
{
@SideOnly(Side.CLIENT) public float apply(ItemStack stack, @Nullable World worldIn,
@Nullable EntityLivingBase entityIn)
{
if (stack != null && stack.getTagCompound().getBoolean("isActive"))
{
return 1.0F;
}
return 0.0F;
}
});
}
@Override
public boolean hitEntity(ItemStack itemstack, EntityLivingBase entityliving, EntityLivingBase entityliving1)
@Override public Multimap<String, AttributeModifier> getAttributeModifiers(EntityEquipmentSlot slot,
ItemStack stack)
{
Multimap<String, AttributeModifier> multimap = HashMultimap.<String, AttributeModifier>create();
int modifier = 0;
if (stack.getTagCompound().getBoolean("isActive"))
modifier = 9;
if (slot == EntityEquipmentSlot.MAINHAND)
{
multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getAttributeUnlocalizedName(),
new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", (double) modifier, 0));
multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName(),
new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", -2.4000000953674316D, 0));
}
return multimap;
}
@Override public boolean hitEntity(ItemStack itemstack, EntityLivingBase entityliving,
EntityLivingBase entityliving1)
{
if (PoweredItem.canUseEnergy(cost, itemstack))
{
PoweredItem.useEnergy(cost, itemstack);
return true;
} else
{
return false;
}
}
@SuppressWarnings({ "rawtypes", "unchecked" }) @SideOnly(Side.CLIENT) public void getSubItems(Item item,
CreativeTabs par2CreativeTabs, List itemList)
{
ItemStack inactiveUncharged = new ItemStack(ModItems.nanosaber);
inactiveUncharged.setTagCompound(new NBTTagCompound());
inactiveUncharged.getTagCompound().setBoolean("isActive", false);
PoweredItem.setEnergy(0, inactiveUncharged);
ItemStack inactiveCharged = new ItemStack(ModItems.nanosaber);
inactiveCharged.setTagCompound(new NBTTagCompound());
inactiveCharged.getTagCompound().setBoolean("isActive", false);
PoweredItem.setEnergy(getMaxPower(inactiveCharged), inactiveCharged);
ItemStack activeUncharged = new ItemStack(ModItems.nanosaber);
activeUncharged.setTagCompound(new NBTTagCompound());
activeUncharged.getTagCompound().setBoolean("isActive", true);
PoweredItem.setEnergy(0, activeUncharged);
ItemStack activeCharged = new ItemStack(ModItems.nanosaber);
activeCharged.setTagCompound(new NBTTagCompound());
activeCharged.getTagCompound().setBoolean("isActive", true);
PoweredItem.setEnergy(getMaxPower(activeCharged), activeCharged);
itemList.add(inactiveUncharged);
itemList.add(inactiveCharged);
itemList.add(activeUncharged);
itemList.add(activeCharged);
}
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4)
{
if (stack.getTagCompound() == null || !stack.getTagCompound().getBoolean("isActive"))
{
list.add(TextFormatting.GRAY + I18n.translateToLocal("techreborn.message.nanosaberInactive"));
} else
{
list.add(TextFormatting.GRAY + I18n.translateToLocal("techreborn.message.nanosaberActive"));
}
}
@Override public boolean showDurabilityBar(ItemStack stack)
{
PoweredItem.useEnergy(cost, itemstack);
return true;
}
@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack stack, World worldIn, EntityPlayer player, EnumHand hand)
@Override public ActionResult<ItemStack> onItemRightClick(ItemStack stack, World world, EntityPlayer player,
EnumHand hand)
{
if (player.isSneaking())
{
changeMode(stack);
if (stack.getTagCompound() == null || !stack.getTagCompound().getBoolean("isActive"))
{
stack.setTagCompound(new NBTTagCompound());
stack.getTagCompound().setBoolean("isActive", true);
if (!world.isRemote && ConfigTechReborn.NanosaberChat)
{
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new TextComponentString(
TextFormatting.GRAY + I18n.translateToLocal("techreborn.message.setTo") + " "
+ TextFormatting.GOLD + I18n
.translateToLocal("techreborn.message.nanosaberActive")));
}
} else
{
stack.getTagCompound().setBoolean("isActive", false);
if (!world.isRemote && ConfigTechReborn.NanosaberChat)
{
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new TextComponentString(
TextFormatting.GRAY + I18n.translateToLocal("techreborn.message.setTo") + " "
+ TextFormatting.GOLD + I18n
.translateToLocal("techreborn.message.nanosaberInactive")));
}
}
}
return new ActionResult<>(EnumActionResult.FAIL, stack);
return new ActionResult<>(EnumActionResult.SUCCESS, stack);
}
public void changeMode(ItemStack stack)
{
if (!ItemNBTHelper.verifyExistance(stack, "isActive"))
{
ItemNBTHelper.setBoolean(stack, "isActive", true);
} else if (ItemNBTHelper.verifyExistance(stack, "isActive"))
{
stack.getTagCompound().removeTag("isActive");
}
}
public boolean isItemActive(ItemStack stack)
{
return !ItemNBTHelper.verifyExistance(stack, "isActive");
}
// @SideOnly(Side.CLIENT)
// @Override
// public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4)
// {
// if (ItemNBTHelper.verifyExistance(stack, "isActive"))
// {
// list.add("Active");
// } else if (!ItemNBTHelper.verifyExistance(stack, "isActive"))
// {
// list.add("Not Active");
// }
// super.addInformation(stack, player, list, par4);
// }
@Override
public boolean isRepairable()
{
return false;
}
@Override
public double getMaxPower(ItemStack stack)
{
return maxCharge;
}
@Override
public boolean canAcceptEnergy(ItemStack stack)
{
return true;
}
@Override
public boolean canProvideEnergy(ItemStack stack)
{
return false;
}
@Override
public double getMaxTransfer(ItemStack stack)
{
return transferLimit;
}
@Override
public int getStackTier(ItemStack stack)
{
return tier;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList)
{
ItemStack itemStack = new ItemStack(this, 1);
itemList.add(itemStack);
ItemStack charged = new ItemStack(this, 1);
PoweredItem.setEnergy(getMaxPower(charged), charged);
itemList.add(charged);
}
@Override
public double getDurabilityForDisplay(ItemStack stack)
@Override public double getDurabilityForDisplay(ItemStack stack)
{
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
return 1 - charge;
}
@Override
public boolean showDurabilityBar(ItemStack stack)
@Override public boolean isRepairable()
{
return false;
}
@Override public double getMaxPower(ItemStack stack)
{
return 100000;
}
@Override public boolean canAcceptEnergy(ItemStack stack)
{
return true;
}
@Override
public String getTextureName(int damage)
@Override public boolean canProvideEnergy(ItemStack stack)
{
if (damage == 1)
{
return "techreborn:items/tool/nanosaber_on";
}
return "techreborn:items/tool/nanosaber_off";
return false;
}
@Override
public int getMaxMeta()
@Override public double getMaxTransfer(ItemStack stack)
{
return 512;
}
@Override public int getStackTier(ItemStack stack)
{
return 2;
}
@Override
@SideOnly(Side.CLIENT)
public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining)
{
return new ModelResourceLocation(ModInfo.MOD_ID + ":" + getUnlocalizedName(stack).substring(5), "inventory");
}
@Override
public void addInformation(ItemStack stack, EntityPlayer playerIn, List<String> tooltip, boolean advanced)
{
tooltip.add(TextFormatting.RED + "WIP Coming Soon");
}
}

View file

@ -8,4 +8,5 @@ public class MessageIDs
public static int freqTransmitterID = 0;
public static int fluidPipeID = 1;
public static int playerDetectorID = 2;
public static int nanosaberID = 3;
}

View file

@ -79,13 +79,13 @@ public class ClientProxy extends CommonProxy
}
});
ModelBakery.registerItemVariants(ModItems.dynamicCell, MODEL_DYNAMIC_CELL);
RegisterItemJsons.registerModels();
}
@Override
public void init(FMLInitializationEvent event)
{
super.init(event);
RegisterItemJsons.registerModels();
MinecraftForge.EVENT_BUS.register(new IconSupplier());
MinecraftForge.EVENT_BUS.register(new ChargeHud());
//MinecraftForge.EVENT_BUS.register(new VersionCheckerClient());