mirror of
https://github.com/GTNewHorizons/MagicBees.git
synced 2026-11-12 00:08:01 +00:00
Addition of Blood Magic Frames
Adds the replacement for the Blood Frame from BM, which is soon to be deleted from BM because of glitches, likewise this adds a new frame, The Maddening Frame of Frenzy, both use LP, both need a recipe to be decided on a later date, both need their lp tweaked, the updated LP is currently proposed to be switched to 25k
This commit is contained in:
1 parent
bdb7a53b96
commit
e12eda73fc
8 files changed
+296
-3
No files matched your search
@@ -12,7 +12,8 @@ public enum HiveFrameType implements IBeeModifier {
|
||||
METABOLIC("Metabolic", 130, 1f, 1.8f, 1f, 1.2f, 1f),
|
||||
NECROTIC("Necrotic", 280, 1f, 1f, 0.3f, 0.75f, 1.2f),
|
||||
TEMPORAL("Temporal", 300, 1f, 1f, 2.5f, 1f, 0.8f),
|
||||
OBLIVION("Oblivion", 50, 1f, 1f, 0.0001f, 0f, 1f),;
|
||||
OBLIVION("Oblivion", 50, 1f, 1f, 0.0001f, 0f, 1f);
|
||||
|
||||
|
||||
private final String frameName;
|
||||
public final int maxDamage;
|
||||
|
||||
@@ -38,6 +38,8 @@ import magicbees.main.utils.LogHelper;
|
||||
import magicbees.main.utils.VersionInfo;
|
||||
import magicbees.main.utils.compat.BotaniaHelper;
|
||||
import magicbees.main.utils.compat.ThaumcraftHelper;
|
||||
import magicbees.main.utils.compat.bloodmagic.ItemBloodFrame;
|
||||
import magicbees.main.utils.compat.bloodmagic.ItemFrenziedFrame;
|
||||
import magicbees.storage.BackpackDefinition;
|
||||
import magicbees.tileentity.TileEntityEffectJar;
|
||||
import magicbees.tileentity.TileEntityMagicApiary;
|
||||
@@ -146,6 +148,8 @@ public class Config {
|
||||
public static ItemMagicHiveFrame hiveFrameNecrotic;
|
||||
public static ItemMagicHiveFrame hiveFrameTemporal;
|
||||
public static ItemMagicHiveFrame hiveFrameOblivion;
|
||||
public static ItemBloodFrame hiveFrameBlood;
|
||||
public static ItemFrenziedFrame hiveFrameFrenzy;
|
||||
|
||||
// ----- Backpacks ------------------------------------------
|
||||
public static Item thaumaturgeBackpackT1;
|
||||
@@ -482,6 +486,14 @@ public class Config {
|
||||
|
||||
voidGrafter = new ItemVoidGrafter();
|
||||
GameRegistry.registerItem(voidGrafter, voidGrafter.getUnlocalizedName(), CommonProxy.DOMAIN);
|
||||
if (bloodMagicActive) {
|
||||
hiveFrameBlood = new ItemBloodFrame();
|
||||
GameRegistry.registerItem(hiveFrameBlood, hiveFrameBlood.getUnlocalizedName(), CommonProxy.DOMAIN);
|
||||
|
||||
hiveFrameFrenzy = new ItemFrenziedFrame();
|
||||
GameRegistry.registerItem(hiveFrameFrenzy, hiveFrameFrenzy.getUnlocalizedName(), CommonProxy.DOMAIN);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
package magicbees.main.utils.compat.bloodmagic;
|
||||
|
||||
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
|
||||
import WayofTime.alchemicalWizardry.common.items.EnergyItems;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import forestry.api.apiculture.*;
|
||||
import magicbees.main.CommonProxy;
|
||||
import magicbees.main.utils.TabMagicBees;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ItemBloodFrame extends EnergyItems implements IHiveFrame {
|
||||
|
||||
private final IBeeModifier beeModifier = new BloodFrameBeeModifier();
|
||||
private EntityPlayer owner = null;
|
||||
|
||||
public ItemBloodFrame() {
|
||||
super();
|
||||
this.maxStackSize = 1;
|
||||
this.setMaxDamage(1);
|
||||
setEnergyUsed(1000);
|
||||
setCreativeTab(TabMagicBees.tabMagicBees);
|
||||
this.setUnlocalizedName("bloodFrame");
|
||||
}
|
||||
|
||||
private static class BloodFrameBeeModifier implements IBeeModifier {
|
||||
|
||||
@Override
|
||||
public float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) {
|
||||
return 0.0001f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getProductionModifier(IBeeGenome genome, float currentModifier) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getFloweringModifier(IBeeGenome genome, float currentModifier) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getGeneticDecay(IBeeGenome genome, float currentModifier) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSealed() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSelfLighted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSunlightSimulated() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isHellish() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getTerritoryModifier(IBeeGenome genome, float currentModifier) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
|
||||
par3List.add(StatCollector.translateToLocal("tooltip.bloodframe.desc"));
|
||||
|
||||
if (!(par1ItemStack.getTagCompound() == null)) {
|
||||
par3List.add(
|
||||
StatCollector.translateToLocal("tooltip.owner.currentowner") + " "
|
||||
+ par1ItemStack.getTagCompound().getString("ownerName"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IIconRegister iconRegister) {
|
||||
this.itemIcon = iconRegister.registerIcon(CommonProxy.DOMAIN + ":bloodFrame");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
|
||||
|
||||
if (EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer)) {
|
||||
owner = par3EntityPlayer;
|
||||
if (par1ItemStack.getItemDamage() > 0) {
|
||||
if (EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) {
|
||||
par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return par1ItemStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear) {
|
||||
// TODO Auto-generated method stub
|
||||
if (EnergyItems.canSyphonInContainer(frame, getEnergyUsed() * wear)) {
|
||||
if (owner != null) {
|
||||
EnergyItems.drainPlayerNetwork(owner, getEnergyUsed() * wear);
|
||||
}
|
||||
// EnergyItems.syphonWhileInContainer(frame, getEnergyUsed() * wear);
|
||||
} else {
|
||||
frame.setItemDamage(frame.getItemDamage() + wear);
|
||||
if (frame.getItemDamage() >= frame.getMaxDamage()) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return frame;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBeeModifier getBeeModifier() {
|
||||
return beeModifier;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package magicbees.main.utils.compat.bloodmagic;
|
||||
|
||||
import WayofTime.alchemicalWizardry.common.items.EnergyItems;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import forestry.api.apiculture.*;
|
||||
import magicbees.main.CommonProxy;
|
||||
import magicbees.main.utils.TabMagicBees;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ItemFrenziedFrame extends EnergyItems implements IHiveFrame {
|
||||
|
||||
private final IBeeModifier beeModifier = new FrenziedFrameBeeModifier();
|
||||
private EntityPlayer owner = null;
|
||||
|
||||
public ItemFrenziedFrame() {
|
||||
super();
|
||||
this.maxStackSize = 1;
|
||||
this.setMaxDamage(1);
|
||||
setEnergyUsed(1000);
|
||||
setCreativeTab(TabMagicBees.tabMagicBees);
|
||||
this.setUnlocalizedName("frenziedFrame");
|
||||
}
|
||||
|
||||
private static class FrenziedFrameBeeModifier implements IBeeModifier {
|
||||
|
||||
@Override
|
||||
public float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) {
|
||||
return 10;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) {
|
||||
return 0.0001f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getProductionModifier(IBeeGenome genome, float currentModifier) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getFloweringModifier(IBeeGenome genome, float currentModifier) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getGeneticDecay(IBeeGenome genome, float currentModifier) {
|
||||
return 10;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSealed() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSelfLighted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSunlightSimulated() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isHellish() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getTerritoryModifier(IBeeGenome genome, float currentModifier) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
|
||||
par3List.add(StatCollector.translateToLocal("MAY CHAOS TAKE THE WORLD"));
|
||||
|
||||
if (!(par1ItemStack.getTagCompound() == null)) {
|
||||
par3List.add(
|
||||
StatCollector.translateToLocal("tooltip.owner.currentowner") + " "
|
||||
+ par1ItemStack.getTagCompound().getString("ownerName"));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IIconRegister iconRegister) {
|
||||
this.itemIcon = iconRegister.registerIcon(CommonProxy.DOMAIN + ":frenziedFrame");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
|
||||
|
||||
if (EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer)) {
|
||||
owner = par3EntityPlayer;
|
||||
if (par1ItemStack.getItemDamage() > 0) {
|
||||
if (EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) {
|
||||
par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return par1ItemStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear) {
|
||||
// TODO Auto-generated method stub
|
||||
if (EnergyItems.canSyphonInContainer(frame, getEnergyUsed() * wear)) {
|
||||
if (owner != null) {
|
||||
EnergyItems.drainPlayerNetwork(owner, getEnergyUsed() * wear);
|
||||
}
|
||||
// EnergyItems.syphonWhileInContainer(frame, getEnergyUsed() * wear);
|
||||
} else {
|
||||
frame.setItemDamage(frame.getItemDamage() + wear);
|
||||
if (frame.getItemDamage() >= frame.getMaxDamage()) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return frame;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBeeModifier getBeeModifier() {
|
||||
return beeModifier;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user