mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-12-23 03:49:22 +01:00
Added Ring of Growh, tweaked Greenhouse Glass a bit
This commit is contained in:
parent
2d9af1748c
commit
4940a6e6f9
6 changed files with 128 additions and 11 deletions
|
@ -125,7 +125,7 @@ public class CreativeTab extends CreativeTabs{
|
|||
add(InitItems.diamondPaxel);
|
||||
add(InitItems.emeraldPaxel);
|
||||
add(InitItems.obsidianPaxel);
|
||||
InitForeignPaxels.addToCreativeTab(this.list);
|
||||
InitForeignPaxels.addToCreativeTab();
|
||||
|
||||
add(InitItems.itemPickaxeQuartz);
|
||||
add(InitItems.itemSwordQuartz);
|
||||
|
@ -176,11 +176,11 @@ public class CreativeTab extends CreativeTabs{
|
|||
return new ItemStack(this.getTabIconItem());
|
||||
}
|
||||
|
||||
private void add(Item item){
|
||||
public void add(Item item){
|
||||
item.getSubItems(item, instance, this.list);
|
||||
}
|
||||
|
||||
private void add(Block block){
|
||||
public void add(Block block){
|
||||
block.getSubBlocks(new ItemStack(block).getItem(), instance, this.list);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,8 +13,6 @@ import net.minecraft.item.Item;
|
|||
import net.minecraft.item.ItemTool;
|
||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class InitForeignPaxels{
|
||||
|
||||
private static final String THERMAL_FOUNDATION = "ThermalFoundation";
|
||||
|
@ -83,15 +81,15 @@ public class InitForeignPaxels{
|
|||
}
|
||||
}
|
||||
|
||||
public static void addToCreativeTab(List list){
|
||||
public static void addToCreativeTab(){
|
||||
for(Item item : tfPaxels){
|
||||
if(item != null){
|
||||
item.getSubItems(item, CreativeTab.instance, list);
|
||||
CreativeTab.instance.add(item);
|
||||
}
|
||||
}
|
||||
for(Item item : mtPaxels){
|
||||
if(item != null){
|
||||
item.getSubItems(item, CreativeTab.instance, list);
|
||||
CreativeTab.instance.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -108,9 +108,14 @@ public class InitItems{
|
|||
public static Item itemTeleStaff;
|
||||
public static Item itemWingsOfTheBats;
|
||||
|
||||
public static Item itemGrowthRing;
|
||||
|
||||
public static void init(){
|
||||
ModUtil.LOGGER.info("Initializing Items...");
|
||||
|
||||
itemGrowthRing = new ItemGrowthRing();
|
||||
ItemUtil.register(itemGrowthRing);
|
||||
|
||||
itemHelmEmerald = new ItemArmorAA("itemHelmEmerald", InitArmorMaterials.armorMaterialEmerald, 0, "gemEmerald", "armorEmerald");
|
||||
itemChestEmerald = new ItemArmorAA("itemChestEmerald", InitArmorMaterials.armorMaterialEmerald, 1, "gemEmerald", "armorEmerald");
|
||||
itemPantsEmerald = new ItemArmorAA("itemPantsEmerald", InitArmorMaterials.armorMaterialEmerald, 2, "gemEmerald", "armorEmerald");
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
package ellpeck.actuallyadditions.items;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import ellpeck.actuallyadditions.util.INameableItem;
|
||||
import ellpeck.actuallyadditions.util.ModUtil;
|
||||
import ellpeck.actuallyadditions.util.WorldPos;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockGrass;
|
||||
import net.minecraft.block.IGrowable;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.EnumRarity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.IPlantable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemGrowthRing extends ItemEnergy implements INameableItem{
|
||||
|
||||
private static final int RANGE = 5;
|
||||
private static final int ENERGY_USED_PER_TICK = 800;
|
||||
//The waiting time per growth cycle
|
||||
private static final int WAIT_TIME = 30;
|
||||
//The amount of Growth Ticks given to random plants around
|
||||
private static final int GROWTH_TICKS_PER_CYCLE = 50;
|
||||
|
||||
public ItemGrowthRing(){
|
||||
super(1000000, 5000, 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5){
|
||||
if(!(entity instanceof EntityPlayer) || world.isRemote) return;
|
||||
EntityPlayer player = (EntityPlayer)entity;
|
||||
ItemStack equipped = player.getCurrentEquippedItem();
|
||||
|
||||
if(equipped != null && equipped == stack && this.getEnergyStored(stack) >= ENERGY_USED_PER_TICK){
|
||||
ArrayList<WorldPos> blocks = new ArrayList<WorldPos>();
|
||||
|
||||
if(stack.stackTagCompound == null) stack.setTagCompound(new NBTTagCompound());
|
||||
int waitTime = stack.stackTagCompound.getInteger("WaitTime");
|
||||
|
||||
//Adding all possible Blocks
|
||||
if(waitTime >= WAIT_TIME){
|
||||
for(int x = -RANGE; x < RANGE+1; x++){
|
||||
for(int z = -RANGE; z < RANGE+1; z++){
|
||||
for(int y = -RANGE; y < RANGE+1; y++){
|
||||
int theX = (int)player.posX+x;
|
||||
int theY = (int)player.posY+y;
|
||||
int theZ = (int)player.posZ+z;
|
||||
Block theBlock = world.getBlock(theX, theY, theZ);
|
||||
if((theBlock instanceof IGrowable || theBlock instanceof IPlantable) && !(theBlock instanceof BlockGrass)){
|
||||
blocks.add(new WorldPos(world, theX, theY, theZ));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Fertilizing the Blocks
|
||||
if(!blocks.isEmpty()){
|
||||
for(int i = 0; i < GROWTH_TICKS_PER_CYCLE; i++){
|
||||
WorldPos pos = blocks.get(new Random().nextInt(blocks.size()));
|
||||
|
||||
int metaBefore = pos.getMetadata();
|
||||
pos.getBlock().updateTick(world, pos.getX(), pos.getY(), pos.getZ(), world.rand);
|
||||
|
||||
//Show Particles if Metadata changed
|
||||
if(pos.getMetadata() != metaBefore){
|
||||
pos.getWorld().playAuxSFX(2005, pos.getX(), pos.getY(), pos.getZ(), 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stack.stackTagCompound.setInteger("WaitTime", 0);
|
||||
}
|
||||
else stack.stackTagCompound.setInteger("WaitTime", waitTime+1);
|
||||
|
||||
//Use Energy every tick
|
||||
this.extractEnergy(stack, ENERGY_USED_PER_TICK, false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumRarity getRarity(ItemStack stack){
|
||||
return EnumRarity.epic;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon(ItemStack stack, int pass){
|
||||
return this.itemIcon;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IIconRegister iconReg){
|
||||
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER + ":" + this.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName(){
|
||||
return "itemGrowthRing";
|
||||
}
|
||||
}
|
|
@ -45,7 +45,7 @@ public class ItemPotionRing extends Item implements INameableItem{
|
|||
ThePotionRings effect = ThePotionRings.values()[stack.getItemDamage()];
|
||||
if(!effect.needsWaitBeforeActivating || !thePlayer.isPotionActive(effect.effectID)){
|
||||
if(!((ItemPotionRing)stack.getItem()).isAdvanced){
|
||||
if(equippedStack != null && stack.isItemEqual(equippedStack)){
|
||||
if(equippedStack != null && stack == equippedStack){
|
||||
thePlayer.addPotionEffect(new PotionEffect(effect.effectID, effect.activeTime, effect.normalAmplifier, true));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import ellpeck.actuallyadditions.util.WorldPos;
|
|||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockGrass;
|
||||
import net.minecraft.block.IGrowable;
|
||||
import net.minecraftforge.common.IPlantable;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
|
@ -23,8 +24,12 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{
|
|||
if(this.timeUntilNextFert > 0){
|
||||
this.timeUntilNextFert--;
|
||||
if(timeUntilNextFert <= 0){
|
||||
int metaBefore = blockToFert.getMetadata();
|
||||
worldObj.getBlock(blockToFert.getX(), blockToFert.getY(), blockToFert.getZ()).updateTick(worldObj, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), worldObj.rand);
|
||||
worldObj.playAuxSFX(2005, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), 0);
|
||||
|
||||
if(blockToFert.getMetadata() != metaBefore){
|
||||
worldObj.playAuxSFX(2005, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else this.timeUntilNextFert = this.timeUntilNextFertToSet+new Random().nextInt(this.timeUntilNextFertToSet);
|
||||
|
@ -37,7 +42,7 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{
|
|||
for(int i = yCoord-1; i > 0; i--){
|
||||
Block block = worldObj.getBlock(xCoord, i, zCoord);
|
||||
if(block != null && !(worldObj.isAirBlock(xCoord, i, zCoord))){
|
||||
if(block instanceof IGrowable && !(block instanceof BlockGrass)){
|
||||
if((block instanceof IGrowable || block instanceof IPlantable) && !(block instanceof BlockGrass)){
|
||||
return new WorldPos(worldObj, xCoord, i, zCoord);
|
||||
}
|
||||
else return null;
|
||||
|
|
Loading…
Reference in a new issue