mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-22 23:28:35 +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.diamondPaxel);
|
||||||
add(InitItems.emeraldPaxel);
|
add(InitItems.emeraldPaxel);
|
||||||
add(InitItems.obsidianPaxel);
|
add(InitItems.obsidianPaxel);
|
||||||
InitForeignPaxels.addToCreativeTab(this.list);
|
InitForeignPaxels.addToCreativeTab();
|
||||||
|
|
||||||
add(InitItems.itemPickaxeQuartz);
|
add(InitItems.itemPickaxeQuartz);
|
||||||
add(InitItems.itemSwordQuartz);
|
add(InitItems.itemSwordQuartz);
|
||||||
|
@ -176,11 +176,11 @@ public class CreativeTab extends CreativeTabs{
|
||||||
return new ItemStack(this.getTabIconItem());
|
return new ItemStack(this.getTabIconItem());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void add(Item item){
|
public void add(Item item){
|
||||||
item.getSubItems(item, instance, this.list);
|
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);
|
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.minecraft.item.ItemTool;
|
||||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class InitForeignPaxels{
|
public class InitForeignPaxels{
|
||||||
|
|
||||||
private static final String THERMAL_FOUNDATION = "ThermalFoundation";
|
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){
|
for(Item item : tfPaxels){
|
||||||
if(item != null){
|
if(item != null){
|
||||||
item.getSubItems(item, CreativeTab.instance, list);
|
CreativeTab.instance.add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(Item item : mtPaxels){
|
for(Item item : mtPaxels){
|
||||||
if(item != null){
|
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 itemTeleStaff;
|
||||||
public static Item itemWingsOfTheBats;
|
public static Item itemWingsOfTheBats;
|
||||||
|
|
||||||
|
public static Item itemGrowthRing;
|
||||||
|
|
||||||
public static void init(){
|
public static void init(){
|
||||||
ModUtil.LOGGER.info("Initializing Items...");
|
ModUtil.LOGGER.info("Initializing Items...");
|
||||||
|
|
||||||
|
itemGrowthRing = new ItemGrowthRing();
|
||||||
|
ItemUtil.register(itemGrowthRing);
|
||||||
|
|
||||||
itemHelmEmerald = new ItemArmorAA("itemHelmEmerald", InitArmorMaterials.armorMaterialEmerald, 0, "gemEmerald", "armorEmerald");
|
itemHelmEmerald = new ItemArmorAA("itemHelmEmerald", InitArmorMaterials.armorMaterialEmerald, 0, "gemEmerald", "armorEmerald");
|
||||||
itemChestEmerald = new ItemArmorAA("itemChestEmerald", InitArmorMaterials.armorMaterialEmerald, 1, "gemEmerald", "armorEmerald");
|
itemChestEmerald = new ItemArmorAA("itemChestEmerald", InitArmorMaterials.armorMaterialEmerald, 1, "gemEmerald", "armorEmerald");
|
||||||
itemPantsEmerald = new ItemArmorAA("itemPantsEmerald", InitArmorMaterials.armorMaterialEmerald, 2, "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()];
|
ThePotionRings effect = ThePotionRings.values()[stack.getItemDamage()];
|
||||||
if(!effect.needsWaitBeforeActivating || !thePlayer.isPotionActive(effect.effectID)){
|
if(!effect.needsWaitBeforeActivating || !thePlayer.isPotionActive(effect.effectID)){
|
||||||
if(!((ItemPotionRing)stack.getItem()).isAdvanced){
|
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));
|
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.Block;
|
||||||
import net.minecraft.block.BlockGrass;
|
import net.minecraft.block.BlockGrass;
|
||||||
import net.minecraft.block.IGrowable;
|
import net.minecraft.block.IGrowable;
|
||||||
|
import net.minecraftforge.common.IPlantable;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
@ -23,10 +24,14 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{
|
||||||
if(this.timeUntilNextFert > 0){
|
if(this.timeUntilNextFert > 0){
|
||||||
this.timeUntilNextFert--;
|
this.timeUntilNextFert--;
|
||||||
if(timeUntilNextFert <= 0){
|
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.getBlock(blockToFert.getX(), blockToFert.getY(), blockToFert.getZ()).updateTick(worldObj, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), worldObj.rand);
|
||||||
|
|
||||||
|
if(blockToFert.getMetadata() != metaBefore){
|
||||||
worldObj.playAuxSFX(2005, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), 0);
|
worldObj.playAuxSFX(2005, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else this.timeUntilNextFert = this.timeUntilNextFertToSet+new Random().nextInt(this.timeUntilNextFertToSet);
|
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--){
|
for(int i = yCoord-1; i > 0; i--){
|
||||||
Block block = worldObj.getBlock(xCoord, i, zCoord);
|
Block block = worldObj.getBlock(xCoord, i, zCoord);
|
||||||
if(block != null && !(worldObj.isAirBlock(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);
|
return new WorldPos(worldObj, xCoord, i, zCoord);
|
||||||
}
|
}
|
||||||
else return null;
|
else return null;
|
||||||
|
|
Loading…
Reference in a new issue