diff --git a/src/main/java/vazkii/botania/common/block/BlockIncensePlate.java b/src/main/java/vazkii/botania/common/block/BlockIncensePlate.java
index 05d69a5fa..6da1aea85 100644
--- a/src/main/java/vazkii/botania/common/block/BlockIncensePlate.java
+++ b/src/main/java/vazkii/botania/common/block/BlockIncensePlate.java
@@ -24,14 +24,11 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.common.util.RotationHelper;
-import vazkii.botania.api.brew.Brew;
import vazkii.botania.api.internal.VanillaPacketDispatcher;
import vazkii.botania.api.lexicon.ILexiconable;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.client.lib.LibRenderIDs;
import vazkii.botania.common.block.tile.TileIncensePlate;
-import vazkii.botania.common.item.ModItems;
-import vazkii.botania.common.item.brew.ItemIncenseStick;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
@@ -63,9 +60,7 @@ public class BlockIncensePlate extends BlockModContainer implements ILexiconable
did = true;
} else if(plateStack != null && !plate.burning) {
if(stack != null && stack.getItem() == Items.flint_and_steel) {
- plate.burning = true;
- Brew brew = ((ItemIncenseStick) ModItems.incenseStick).getBrew(plateStack);
- plate.timeLeft = brew.getPotionEffects(plateStack).get(0).getDuration() * ItemIncenseStick.TIME_MULTIPLIER;
+ plate.ignite();
stack.damageItem(1, player);
did = true;
} else {
@@ -89,6 +84,16 @@ public class BlockIncensePlate extends BlockModContainer implements ILexiconable
int l = MathHelper.floor_double(p_149689_5_.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, META_ROTATIONS[l], 2);
}
+
+ @Override
+ public boolean hasComparatorInputOverride() {
+ return true;
+ }
+
+ @Override
+ public int getComparatorInputOverride(World world, int x, int y, int z, int side) {
+ return ((TileIncensePlate) world.getTileEntity(x, y, z)).comparatorOutput;
+ }
@Override
public void setBlockBoundsBasedOnState(IBlockAccess w, int x, int y, int z) {
diff --git a/src/main/java/vazkii/botania/common/block/tile/TileIncensePlate.java b/src/main/java/vazkii/botania/common/block/tile/TileIncensePlate.java
index 9750d32ec..46c456375 100644
--- a/src/main/java/vazkii/botania/common/block/tile/TileIncensePlate.java
+++ b/src/main/java/vazkii/botania/common/block/tile/TileIncensePlate.java
@@ -37,6 +37,8 @@ public class TileIncensePlate extends TileSimpleInventory implements ISidedInven
public int timeLeft = 0;
public boolean burning = false;
+ public int comparatorOutput = 0;
+
@Override
public void updateEntity() {
ItemStack stack = getStackInSlot(0);
@@ -75,6 +77,26 @@ public class TileIncensePlate extends TileSimpleInventory implements ISidedInven
VanillaPacketDispatcher.dispatchTEToNearbyPlayers(this);
}
} else timeLeft = 0;
+
+ int newComparator = 0;
+ if(stack != null)
+ newComparator = 1;
+ if(burning)
+ newComparator = 2;
+ if(comparatorOutput != newComparator) {
+ comparatorOutput = newComparator;
+ worldObj.func_147453_f(xCoord, yCoord, zCoord, worldObj.getBlock(xCoord, yCoord, zCoord));
+ }
+ }
+
+ public void ignite() {
+ ItemStack stack = getStackInSlot(0);
+ if(stack == null || burning)
+ return;
+
+ burning = true;
+ Brew brew = ((ItemIncenseStick) ModItems.incenseStick).getBrew(stack);
+ timeLeft = brew.getPotionEffects(stack).get(0).getDuration() * ItemIncenseStick.TIME_MULTIPLIER;
}
@Override
@@ -120,5 +142,12 @@ public class TileIncensePlate extends TileSimpleInventory implements ISidedInven
public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) {
return false;
}
-
+
+ @Override
+ public void markDirty() {
+ super.markDirty();
+ if(!worldObj.isRemote)
+ VanillaPacketDispatcher.dispatchTEToNearbyPlayers(this);
+ }
+
}
diff --git a/src/main/java/vazkii/botania/common/item/lens/LensFire.java b/src/main/java/vazkii/botania/common/item/lens/LensFire.java
index 0969e45d3..19ed86c74 100644
--- a/src/main/java/vazkii/botania/common/item/lens/LensFire.java
+++ b/src/main/java/vazkii/botania/common/item/lens/LensFire.java
@@ -18,6 +18,8 @@ import net.minecraft.util.ChunkCoordinates;
import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.common.util.ForgeDirection;
import vazkii.botania.api.internal.IManaBurst;
+import vazkii.botania.common.block.ModBlocks;
+import vazkii.botania.common.block.tile.TileIncensePlate;
public class LensFire extends Lens {
@@ -36,7 +38,10 @@ public class LensFire extends Lens {
if(blockAt == Blocks.portal)
entity.worldObj.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.air);
- else if(blockAt_.isAir(entity.worldObj, x, y, z))
+ else if(blockAt == ModBlocks.incensePlate) {
+ TileIncensePlate plate = (TileIncensePlate) entity.worldObj.getTileEntity(pos.blockX, pos.blockY, pos.blockZ);
+ plate.ignite();
+ } else if(blockAt_.isAir(entity.worldObj, x, y, z))
entity.worldObj.setBlock(x, y, z, Blocks.fire);
}
diff --git a/src/main/java/vazkii/botania/common/lexicon/LexiconData.java b/src/main/java/vazkii/botania/common/lexicon/LexiconData.java
index 101a2cb43..8fa7a16f2 100644
--- a/src/main/java/vazkii/botania/common/lexicon/LexiconData.java
+++ b/src/main/java/vazkii/botania/common/lexicon/LexiconData.java
@@ -583,7 +583,7 @@ public final class LexiconData {
new PageBrew(ModBrewRecipes.bloodthirstBrew, "5a", "5b"), new PageBrew(ModBrewRecipes.allureBrew, "6a", "6b")).setIcon(((IBrewContainer) ModItems.vial).getItemForBrew(ModBrews.jumpBoost, new ItemStack(ModItems.vial)));
incense = new BLexiconEntry(LibLexicon.DEVICE_INCENSE, categoryDevices);
- incense.setLexiconPages(new PageText("0"), new PageText("1"), new PageText("2"), new PageCraftingRecipe("3", ModCraftingRecipes.recipeIncenseStick), new PageCraftingRecipe("4", ModCraftingRecipes.recipeIncensePlate));
+ incense.setLexiconPages(new PageText("0"), new PageText("1"), new PageText("2"), new PageText("5"), new PageCraftingRecipe("3", ModCraftingRecipes.recipeIncenseStick), new PageCraftingRecipe("4", ModCraftingRecipes.recipeIncensePlate));
// TOOLS ENTRIES
manaBlaster = new BLexiconEntry(LibLexicon.TOOL_MANA_BLASTER, categoryTools);
diff --git a/src/main/resources/assets/botania/lang/en_US.lang b/src/main/resources/assets/botania/lang/en_US.lang
index 156248c20..6bf4d74f8 100644
--- a/src/main/resources/assets/botania/lang/en_US.lang
+++ b/src/main/resources/assets/botania/lang/en_US.lang
@@ -1992,6 +1992,7 @@ botania.entry.incense=Brew Incenses
botania.page.incense0=&4Brews&0 can provide a great variety of effects when in liquid form. They, however, don't last long, and take up inventory space. Utilizing &1Incense Sticks&0 instead of flasks mitigates that problem, these can be infused with &4Brew&0 effects just like a normal flask would, but take around ten times as much &4Mana&0 to do so.
botania.page.incense1=An &1Incense Stick&0 can be placed on an &1Incense Plate&0 by right clicking on it, a simple click with a &1Flint and Steel&0 will light it up. Once lit, the stick can not be retrieved.
A single stick of incense will burn for sixty times as long as as the liquid counterpart before needing to be replaced.
botania.page.incense2=&1Incense Plates&0 that are burning &1Incense Sticks&0 will provide the effects of the &4Brew&0 infused in the stick to any players on a 24 block radius of the plate.
Not all &4Brews&0 can be infused into &1Incense Sticks&0, for example, &4Instant Health&0 or &1Absorption&0 can't, nor can any with more than one effect.
+botania.page.incense5=For the incense lovers who are also automation junkies, the &1Incense Plate&0 can receive items through &1Hoppers&0 or other input. It'll output a &1Comparator&0 signal of 1 when it has a stick and 2 when it's burning it.
Lastly, if a &4Mana Burst&0 with a &1Kindle Lens&0 hits the plate while there's a stick on it, it'll start burning it.
botania.page.incense3=Incense is wincense
botania.page.incense4=I can incense it