mirror of
https://github.com/GTNewHorizons/Botania.git
synced 2026-11-13 16:54:06 +00:00
Added Creative abilities to the platforms.
This commit is contained in:
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
|
||||
|
||||
Reference in new issue
Block a user