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:
Alastors committed 2023-04-27 22:01:03 -04:00
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;
+12
View File
@@ -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;
}
}