Skip to content
This repository has been archived by the owner on Apr 22, 2019. It is now read-only.

Commit

Permalink
Add in a basic directional base block class, and start debugging plac…
Browse files Browse the repository at this point in the history
…ement with the glass bell
  • Loading branch information
pahimar committed Oct 13, 2016
1 parent d0abb35 commit ecd7d5f
Show file tree
Hide file tree
Showing 12 changed files with 127 additions and 29 deletions.
4 changes: 2 additions & 2 deletions src/main/java/com/pahimar/ee3/block/BlockAlchemicalFuel.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.pahimar.ee3.block;

import com.pahimar.ee3.block.base.BlockEnumEE;
import com.pahimar.ee3.block.base.BlockEnum;
import com.pahimar.ee3.block.base.IEnumMeta;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
Expand All @@ -13,7 +13,7 @@

import java.util.List;

public class BlockAlchemicalFuel extends BlockEnumEE {
public class BlockAlchemicalFuel extends BlockEnum {

public static final PropertyEnum<FuelVariant> VARIANT = PropertyEnum.create("variant", FuelVariant.class);

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/pahimar/ee3/block/BlockCalciner.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.pahimar.ee3.block;

import com.pahimar.ee3.block.base.BlockEE;
import com.pahimar.ee3.block.base.BlockBase;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class BlockCalciner extends BlockEE {
public class BlockCalciner extends BlockBase {

public BlockCalciner() {
super("calciner");
Expand Down
44 changes: 44 additions & 0 deletions src/main/java/com/pahimar/ee3/block/BlockGlassBell.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.pahimar.ee3.block;

import com.pahimar.ee3.block.base.BlockDirectional;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class BlockGlassBell extends BlockDirectional {

public BlockGlassBell() {
super("glass_bell");
}

@Override
@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) {
return false;
}

@Override
public boolean isBlockNormalCube(IBlockState state) {
return false;
}

@Override
public boolean isOpaqueCube(IBlockState state) {
return false;
}

@Override
public boolean isFullCube(IBlockState state) {
return false;
}

@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer() {
return BlockRenderLayer.CUTOUT;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class BlockEE extends Block {
public abstract class BlockBase extends Block {

private final String BASE_NAME;

public BlockEE(String name) {
public BlockBase(String name) {
this(name, Material.ROCK);
}

public BlockEE(String name, Material material) {
public BlockBase(String name, Material material) {
super(material);
setRegistryName(name);
setUnlocalizedName(name);
Expand All @@ -40,7 +40,7 @@ public void initModelsAndVariants() {
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName().toString()));
}

public static ItemBlock getItemBlockFor(BlockEE blockEE) {
return blockEE instanceof BlockEnumEE ? new ItemBlockEnumEE((BlockEnumEE) blockEE) : new ItemBlock(blockEE);
public static ItemBlock getItemBlockFor(BlockBase blockBase) {
return blockBase instanceof BlockEnum ? new ItemBlockEnumEE((BlockEnum) blockBase) : new ItemBlock(blockBase);
}
}
44 changes: 44 additions & 0 deletions src/main/java/com/pahimar/ee3/block/base/BlockDirectional.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.pahimar.ee3.block.base;

import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

public abstract class BlockDirectional extends BlockBase {

public static final PropertyDirection FACING = PropertyDirection.create("facing");

public BlockDirectional(String name) {
super(name);
setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
}

@Override
public IBlockState getStateFromMeta(int meta) {
return getDefaultState().withProperty(FACING, EnumFacing.getFront(meta & 7));
}

@Override
public int getMetaFromState(IBlockState state) {
return state.getValue(FACING).getIndex();
}

@Override
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, FACING);
}

@Override
public void onBlockPlacedBy(World world, BlockPos blockPos, IBlockState state, EntityLivingBase entity, ItemStack itemStack) {
world.setBlockState(blockPos, state.withProperty(FACING, getFacingFromEntity(blockPos, entity)), 2);
}

public static EnumFacing getFacingFromEntity(BlockPos blockPos, EntityLivingBase entity) {
return EnumFacing.getFacingFromVector((float) (entity.posX - blockPos.getX()), (float) (entity.posY - blockPos.getY()), (float) (entity.posZ - blockPos.getZ()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public abstract class BlockEnumEE extends BlockEE {
public abstract class BlockEnum extends BlockBase {

private boolean hasSubtypes;
private final IEnumMeta[] VARIANTS;

public BlockEnumEE(String name, IEnumMeta[] variants) {
public BlockEnum(String name, IEnumMeta[] variants) {
this(name, Material.ROCK, variants);
}

public BlockEnumEE(String name, Material material, IEnumMeta[] variants) {
public BlockEnum(String name, Material material, IEnumMeta[] variants) {
super(name, material);
hasSubtypes = false;
if (variants.length > 0) {
Expand All @@ -39,7 +39,7 @@ public void setHasSubtypes(boolean hasSubtypes) {
}

public String getUnlocalizedName(ItemStack itemStack) {
if (itemStack != null && itemStack.getItem() != null && Block.getBlockFromItem(itemStack.getItem()) instanceof BlockEE) {
if (itemStack != null && itemStack.getItem() != null && Block.getBlockFromItem(itemStack.getItem()) instanceof BlockBase) {
if (getHasSubtypes() && VARIANTS.length > 0) {
return String.format("tile.%s:%s", EquivalentExchange3.MOD_ID, VARIANTS[Math.abs(itemStack.getMetadata() % VARIANTS.length)].getName());
}
Expand Down
14 changes: 8 additions & 6 deletions src/main/java/com/pahimar/ee3/init/ModBlocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.block.BlockAlchemicalFuel;
import com.pahimar.ee3.block.BlockCalciner;
import com.pahimar.ee3.block.base.BlockEE;
import com.pahimar.ee3.block.BlockGlassBell;
import com.pahimar.ee3.block.base.BlockBase;
import net.minecraftforge.fml.common.registry.GameRegistry;

import java.util.ArrayList;
Expand All @@ -13,18 +14,19 @@
@GameRegistry.ObjectHolder(EquivalentExchange3.MOD_ID)
public class ModBlocks {

private static final List<BlockEE> BLOCKS = new ArrayList<>();
private static final List<BlockBase> BLOCKS = new ArrayList<>();

public static final BlockEE CALCINER = new BlockCalciner();
public static final BlockEE ALCHEMICAL_FUEL = new BlockAlchemicalFuel();
public static final BlockBase CALCINER = new BlockCalciner();
public static final BlockBase ALCHEMICAL_FUEL = new BlockAlchemicalFuel();
public static final BlockBase GLASS_BELL = new BlockGlassBell();

private ModBlocks() {}

public static Collection<BlockEE> getBlocks() {
public static Collection<BlockBase> getBlocks() {
return BLOCKS;
}

public static void register(BlockEE block) {
public static void register(BlockBase block) {
BLOCKS.add(block);
}
}
6 changes: 3 additions & 3 deletions src/main/java/com/pahimar/ee3/item/base/ItemBlockEnumEE.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.pahimar.ee3.item.base;

import com.pahimar.ee3.block.base.BlockEnumEE;
import com.pahimar.ee3.block.base.BlockEnum;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;

public class ItemBlockEnumEE extends ItemBlock {

protected final BlockEnumEE block;
protected final BlockEnum block;

public ItemBlockEnumEE(BlockEnumEE block) {
public ItemBlockEnumEE(BlockEnum block) {
super(block);
this.block = block;
this.setMaxDamage(0);
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/pahimar/ee3/proxy/ClientProxy.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.pahimar.ee3.proxy;

import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.block.base.BlockEE;
import com.pahimar.ee3.block.base.BlockBase;
import com.pahimar.ee3.client.handler.ItemTooltipEventHandler;
import com.pahimar.ee3.client.handler.KeyInputEventHandler;
import com.pahimar.ee3.client.settings.Keybindings;
Expand Down Expand Up @@ -36,7 +36,7 @@ public void onPreInit(FMLPreInitializationEvent event) {

// Initialize models and textures
ModItems.getItems().forEach(ItemEE::initModelsAndVariants);
ModBlocks.getBlocks().forEach(BlockEE::initModelsAndVariants);
ModBlocks.getBlocks().forEach(BlockBase::initModelsAndVariants);
// ModelBakery.registerItemVariants(Item.getItemFromBlock(ModBlocks.ALCHEMICAL_FUEL), ResourceLocationHelper.getModelResourceLocation("alchemical_coal"));
OBJLoader.INSTANCE.addDomain(EquivalentExchange3.MOD_ID);

Expand Down
8 changes: 4 additions & 4 deletions src/main/java/com/pahimar/ee3/proxy/CommonProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.blacklist.BlacklistRegistry;
import com.pahimar.ee3.block.base.BlockEE;
import com.pahimar.ee3.block.base.BlockBase;
import com.pahimar.ee3.command.CommandEE;
import com.pahimar.ee3.exchange.EnergyValueRegistry;
import com.pahimar.ee3.handler.*;
Expand All @@ -28,9 +28,9 @@ public void onPreInit(FMLPreInitializationEvent event) {
Network.init();
ModItems.getItems().forEach(GameRegistry::register);

for (BlockEE blockEE : ModBlocks.getBlocks()) {
GameRegistry.register(blockEE);
GameRegistry.register(BlockEE.getItemBlockFor(blockEE), blockEE.getRegistryName());
for (BlockBase blockBase : ModBlocks.getBlocks()) {
GameRegistry.register(blockBase);
GameRegistry.register(BlockBase.getItemBlockFor(blockBase), blockBase.getRegistryName());
}
EnergyValues.init();
AlchemyArrays.init();
Expand Down
10 changes: 9 additions & 1 deletion src/main/resources/assets/ee3/blockstates/glass_bell.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
},
"variants": {
"normal": [{}],
"inventory": [{}]
"inventory": [{}],
"facing": {
"north": {},
"south": {"y": 180},
"west": {"y": 270},
"east": {"y": 90},
"up": {"x": -90},
"down": {"x": 180}
}
}
}

0 comments on commit ecd7d5f

Please sign in to comment.