Added Creative abilities to the platforms.

This commit is contained in:
Lizbeth Rika committed 2014-08-06 17:36:24 +01:00
1 parent 1c1b40293c
commit a792b9373a
4 files changed
+58 -9

No files matched your search

@@ -26,6 +26,7 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import vazkii.botania.api.lexicon.ILexiconable;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.api.wand.IWandable;
import vazkii.botania.client.core.helper.IconHelper;
import vazkii.botania.common.block.tile.TileCamo;
import vazkii.botania.common.block.tile.TilePlatform;
@@ -34,7 +35,7 @@ import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
import cpw.mods.fml.common.registry.GameRegistry;
public class BlockPlatform extends BlockCamo implements ILexiconable {
public class BlockPlatform extends BlockCamo implements ILexiconable, IWandable {
IIcon[] icons;
private static final int SUBTYPES = 3;
@@ -105,4 +106,10 @@ public class BlockPlatform extends BlockCamo implements ILexiconable {
return meta == 0 ? LexiconData.platform : meta == 2 ? null : LexiconData.spectralPlatform;
}
@Override
public boolean onUsedByWand(EntityPlayer player, ItemStack stack, World world, int x, int y, int z, int side) {
TilePlatform tile = (TilePlatform) world.getTileEntity(x, y, z);
return tile.onWanded(player);
}
}
@@ -32,7 +32,7 @@ public class TileCamo extends TileMod {
@Override
public void writeCustomNBT(NBTTagCompound cmp) {
if(camo!=null) {
if(camo != null) {
cmp.setString(TAG_CAMO, Block.blockRegistry.getNameForObject(camo));
cmp.setInteger(TAG_CAMO_META, camoMeta);
}
@@ -11,6 +11,10 @@
*/
package vazkii.botania.common.block.tile;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChunkCoordinates;
import net.minecraftforge.common.util.ForgeDirection;
import vazkii.botania.api.mana.IManaCollisionGhost;
public class TilePlatform extends TileCamo implements IManaCollisionGhost {
@@ -19,5 +23,41 @@ public class TilePlatform extends TileCamo implements IManaCollisionGhost {
public boolean isGhost() {
return true;
}
public boolean onWanded(EntityPlayer player) {
if(player != null && player.capabilities.isCreativeMode) {
if(player.isSneaking())
swapSelfAndPass(this, true);
else swapSurroudings(this, false);
return true;
}
return false;
}
void swapSelfAndPass(TilePlatform tile, boolean empty) {
swap(tile, empty);
swapSurroudings(tile, empty);
}
void swapSurroudings(TilePlatform tile, boolean empty) {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
int x = tile.xCoord + dir.offsetX;
int y = tile.yCoord + dir.offsetY;
int z = tile.zCoord + dir.offsetZ;
TileEntity tileAt = worldObj.getTileEntity(x, y, z);
if(tileAt != null && tile instanceof TilePlatform) {
TilePlatform platform = (TilePlatform) tileAt;
if(empty ? platform.camo != null : platform.camo == null)
swapSelfAndPass(platform, empty);
}
}
}
void swap(TilePlatform tile, boolean empty) {
tile.camo = empty ? null : camo;
tile.camoMeta = empty ? 0 : camoMeta;
worldObj.markBlockForUpdate(tile.xCoord, tile.yCoord, tile.zCoord);
}
}
@@ -733,11 +733,12 @@ public final class ModCrafingRecipes {
recipesShinyFlowers = BotaniaAPI.getLatestAddedRecipes(16);
// Abstruse Platform Recipe
GameRegistry.addRecipe(new ItemStack(ModBlocks.platform),
"343", "0 0",
addOreDictRecipe(new ItemStack(ModBlocks.platform, 2),
"343", "0P0",
'0', new ItemStack(ModBlocks.livingwood, 0, 0),
'3', new ItemStack(ModBlocks.livingwood, 0, 3),
'4', new ItemStack(ModBlocks.livingwood, 0, 4));
'4', new ItemStack(ModBlocks.livingwood, 0, 4),
'P', LibOreDict.MANA_PEARL);
recipePlatform = BotaniaAPI.getLatestAddedRecipe();
// Soulscribe Recipe
@@ -884,11 +885,12 @@ public final class ModCrafingRecipes {
recipeRainbowRod = BotaniaAPI.getLatestAddedRecipe();
// Spectral Platform Recipe
GameRegistry.addRecipe(new ItemStack(ModBlocks.platform, 1, 1),
"343", "0 0",
addOreDictRecipe(new ItemStack(ModBlocks.platform, 2, 1),
"343", "0D0",
'0', new ItemStack(ModBlocks.dreamwood, 0, 0),
'3', new ItemStack(ModBlocks.dreamwood, 0, 3),
'4', new ItemStack(ModBlocks.dreamwood, 0, 4));
'4', new ItemStack(ModBlocks.dreamwood, 0, 4),
'D', LibOreDict.PIXIE_DUST);
recipeSpectralPlatform = BotaniaAPI.getLatestAddedRecipe();
// Elven Mana Spreader Recipes