Changed AEGlassMaterial to Materials
Preparation in case we need more to support custom non solid, non opaque, or similar blocks. Removed custom fullSize/opaque blocks in favour of Material
This commit is contained in:
@@ -18,22 +18,14 @@
|
|||||||
|
|
||||||
package appeng.block;
|
package appeng.block;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.SoundType;
|
import net.minecraft.block.SoundType;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.block.material.MaterialColor;
|
import net.minecraft.block.material.MaterialColor;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.ActionResultType;
|
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.Hand;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.BlockRayTraceResult;
|
|
||||||
import net.minecraft.util.math.shapes.VoxelShape;
|
|
||||||
import net.minecraft.util.math.shapes.VoxelShapes;
|
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.IWorld;
|
import net.minecraft.world.IWorld;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
@@ -41,13 +33,11 @@ import net.minecraftforge.common.ToolType;
|
|||||||
|
|
||||||
import appeng.api.util.IOrientable;
|
import appeng.api.util.IOrientable;
|
||||||
import appeng.api.util.IOrientableBlock;
|
import appeng.api.util.IOrientableBlock;
|
||||||
import appeng.helpers.AEGlassMaterial;
|
import appeng.helpers.AEMaterials;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
public abstract class AEBaseBlock extends Block {
|
public abstract class AEBaseBlock extends Block {
|
||||||
|
|
||||||
private boolean isOpaque = true;
|
|
||||||
private boolean isFullSize = true;
|
|
||||||
private boolean isInventory = false;
|
private boolean isInventory = false;
|
||||||
|
|
||||||
protected AEBaseBlock(final Block.Properties props) {
|
protected AEBaseBlock(final Block.Properties props) {
|
||||||
@@ -74,7 +64,7 @@ public abstract class AEBaseBlock extends Block {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static SoundType getDefaultSoundByMaterial(Material mat) {
|
private static SoundType getDefaultSoundByMaterial(Material mat) {
|
||||||
if (mat == AEGlassMaterial.INSTANCE || mat == Material.GLASS) {
|
if (mat == AEMaterials.GLASS || mat == Material.GLASS) {
|
||||||
return SoundType.GLASS;
|
return SoundType.GLASS;
|
||||||
} else if (mat == Material.ROCK) {
|
} else if (mat == Material.ROCK) {
|
||||||
return SoundType.STONE;
|
return SoundType.STONE;
|
||||||
@@ -85,11 +75,6 @@ public abstract class AEBaseBlock extends Block {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isNormalCube(BlockState state, IBlockReader worldIn, BlockPos pos) {
|
|
||||||
return this.isFullSize() && this.isOpaque();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasComparatorInputOverride(BlockState state) {
|
public boolean hasComparatorInputOverride(BlockState state) {
|
||||||
return this.isInventory();
|
return this.isInventory();
|
||||||
@@ -214,24 +199,6 @@ public abstract class AEBaseBlock extends Block {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isOpaque() {
|
|
||||||
return this.isOpaque;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean setOpaque(final boolean isOpaque) {
|
|
||||||
this.isOpaque = isOpaque;
|
|
||||||
return isOpaque;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean isFullSize() {
|
|
||||||
return this.isFullSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean setFullSize(final boolean isFullSize) {
|
|
||||||
this.isFullSize = isFullSize;
|
|
||||||
return isFullSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean isInventory() {
|
protected boolean isInventory() {
|
||||||
return this.isInventory;
|
return this.isInventory;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,8 +64,6 @@ public class ChargerBlock extends AEBaseTileBlock<ChargerTileEntity> {
|
|||||||
|
|
||||||
public ChargerBlock() {
|
public ChargerBlock() {
|
||||||
super(defaultProps(Material.IRON).notSolid());
|
super(defaultProps(Material.IRON).notSolid());
|
||||||
|
|
||||||
this.setFullSize(this.setOpaque(false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class QuartzFixtureBlock extends AEBaseBlock implements IOrientableBlock
|
|||||||
|
|
||||||
public QuartzFixtureBlock() {
|
public QuartzFixtureBlock() {
|
||||||
super(defaultProps(Material.MISCELLANEOUS).doesNotBlockMovement().hardnessAndResistance(0).lightValue(14)
|
super(defaultProps(Material.MISCELLANEOUS).doesNotBlockMovement().hardnessAndResistance(0).lightValue(14)
|
||||||
.sound(SoundType.GLASS));
|
.sound(SoundType.GLASS).notSolid());
|
||||||
|
|
||||||
this.setDefaultState(getDefaultState().with(FACING, Direction.UP).with(ODD, false));
|
this.setDefaultState(getDefaultState().with(FACING, Direction.UP).with(ODD, false));
|
||||||
}
|
}
|
||||||
@@ -199,9 +199,4 @@ public class QuartzFixtureBlock extends AEBaseBlock implements IOrientableBlock
|
|||||||
return new MetaRotation(w, pos, FACING);
|
return new MetaRotation(w, pos, FACING);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isOpaque() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,10 +18,9 @@
|
|||||||
|
|
||||||
package appeng.block.misc;
|
package appeng.block.misc;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.LivingEntity;
|
import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
@@ -52,8 +51,7 @@ public class TinyTNTBlock extends AEBaseBlock {
|
|||||||
.create(new AxisAlignedBB(0.25f, 0.0f, 0.25f, 0.75f, 0.5f, 0.75f));
|
.create(new AxisAlignedBB(0.25f, 0.0f, 0.25f, 0.75f, 0.5f, 0.75f));
|
||||||
|
|
||||||
public TinyTNTBlock(Block.Properties props) {
|
public TinyTNTBlock(Block.Properties props) {
|
||||||
super(props);
|
super(defaultProps(Material.TNT).notSolid());
|
||||||
setFullSize(setOpaque(false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ import appeng.client.render.cablebus.CableBusBreakingParticle;
|
|||||||
import appeng.client.render.cablebus.CableBusRenderState;
|
import appeng.client.render.cablebus.CableBusRenderState;
|
||||||
import appeng.core.sync.network.NetworkHandler;
|
import appeng.core.sync.network.NetworkHandler;
|
||||||
import appeng.core.sync.packets.ClickPacket;
|
import appeng.core.sync.packets.ClickPacket;
|
||||||
import appeng.helpers.AEGlassMaterial;
|
import appeng.helpers.AEMaterials;
|
||||||
import appeng.integration.abstraction.IAEFacade;
|
import appeng.integration.abstraction.IAEFacade;
|
||||||
import appeng.parts.ICableBusContainer;
|
import appeng.parts.ICableBusContainer;
|
||||||
import appeng.parts.NullCableBusContainer;
|
import appeng.parts.NullCableBusContainer;
|
||||||
@@ -81,7 +81,7 @@ public class CableBusBlock extends AEBaseTileBlock<CableBusTileEntity> implement
|
|||||||
private static final ICableBusContainer NULL_CABLE_BUS = new NullCableBusContainer();
|
private static final ICableBusContainer NULL_CABLE_BUS = new NullCableBusContainer();
|
||||||
|
|
||||||
public CableBusBlock() {
|
public CableBusBlock() {
|
||||||
super(defaultProps(AEGlassMaterial.INSTANCE).notSolid().noDrops().variableOpacity());
|
super(defaultProps(AEMaterials.GLASS).notSolid().noDrops().variableOpacity());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -19,12 +19,12 @@
|
|||||||
package appeng.block.networking;
|
package appeng.block.networking;
|
||||||
|
|
||||||
import appeng.block.AEBaseTileBlock;
|
import appeng.block.AEBaseTileBlock;
|
||||||
import appeng.helpers.AEGlassMaterial;
|
import appeng.helpers.AEMaterials;
|
||||||
import appeng.tile.networking.CreativeEnergyCellTileEntity;
|
import appeng.tile.networking.CreativeEnergyCellTileEntity;
|
||||||
|
|
||||||
public class CreativeEnergyCellBlock extends AEBaseTileBlock<CreativeEnergyCellTileEntity> {
|
public class CreativeEnergyCellBlock extends AEBaseTileBlock<CreativeEnergyCellTileEntity> {
|
||||||
|
|
||||||
public CreativeEnergyCellBlock() {
|
public CreativeEnergyCellBlock() {
|
||||||
super(defaultProps(AEGlassMaterial.INSTANCE));
|
super(defaultProps(AEMaterials.GLASS));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import net.minecraftforge.api.distmarker.Dist;
|
|||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
import appeng.block.AEBaseTileBlock;
|
import appeng.block.AEBaseTileBlock;
|
||||||
import appeng.helpers.AEGlassMaterial;
|
import appeng.helpers.AEMaterials;
|
||||||
import appeng.tile.networking.EnergyCellTileEntity;
|
import appeng.tile.networking.EnergyCellTileEntity;
|
||||||
|
|
||||||
public class EnergyCellBlock extends AEBaseTileBlock<EnergyCellTileEntity> {
|
public class EnergyCellBlock extends AEBaseTileBlock<EnergyCellTileEntity> {
|
||||||
@@ -38,7 +38,7 @@ public class EnergyCellBlock extends AEBaseTileBlock<EnergyCellTileEntity> {
|
|||||||
public static final IntegerProperty ENERGY_STORAGE = IntegerProperty.create("fullness", 0, 7);
|
public static final IntegerProperty ENERGY_STORAGE = IntegerProperty.create("fullness", 0, 7);
|
||||||
|
|
||||||
public EnergyCellBlock() {
|
public EnergyCellBlock() {
|
||||||
super(defaultProps(AEGlassMaterial.INSTANCE));
|
super(defaultProps(AEMaterials.GLASS));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import appeng.block.AEBaseTileBlock;
|
|||||||
import appeng.container.ContainerLocator;
|
import appeng.container.ContainerLocator;
|
||||||
import appeng.container.ContainerOpener;
|
import appeng.container.ContainerOpener;
|
||||||
import appeng.container.implementations.WirelessContainer;
|
import appeng.container.implementations.WirelessContainer;
|
||||||
import appeng.helpers.AEGlassMaterial;
|
import appeng.helpers.AEMaterials;
|
||||||
import appeng.tile.networking.WirelessTileEntity;
|
import appeng.tile.networking.WirelessTileEntity;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
@@ -58,9 +58,7 @@ public class WirelessBlock extends AEBaseTileBlock<WirelessTileEntity> {
|
|||||||
public static final EnumProperty<State> STATE = EnumProperty.create("state", State.class);
|
public static final EnumProperty<State> STATE = EnumProperty.create("state", State.class);
|
||||||
|
|
||||||
public WirelessBlock() {
|
public WirelessBlock() {
|
||||||
super(defaultProps(AEGlassMaterial.INSTANCE).notSolid());
|
super(defaultProps(AEMaterials.GLASS).notSolid());
|
||||||
this.setFullSize(false);
|
|
||||||
this.setOpaque(false);
|
|
||||||
this.setDefaultState(this.getDefaultState().with(STATE, State.OFF));
|
this.setDefaultState(this.getDefaultState().with(STATE, State.OFF));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,9 +42,7 @@ import appeng.util.Platform;
|
|||||||
|
|
||||||
public class PaintSplotchesBlock extends AEBaseTileBlock<PaintSplotchesTileEntity> {
|
public class PaintSplotchesBlock extends AEBaseTileBlock<PaintSplotchesTileEntity> {
|
||||||
public PaintSplotchesBlock() {
|
public PaintSplotchesBlock() {
|
||||||
super(defaultProps(Material.WATER, MaterialColor.AIR));
|
super(defaultProps(Material.WATER, MaterialColor.AIR).notSolid());
|
||||||
this.setFullSize(false);
|
|
||||||
this.setOpaque(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ public abstract class QuantumBaseBlock extends AEBaseTileBlock<QuantumBridgeTile
|
|||||||
|
|
||||||
public QuantumBaseBlock(Block.Properties props) {
|
public QuantumBaseBlock(Block.Properties props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.setFullSize(this.setOpaque(false));
|
|
||||||
this.setDefaultState(this.getDefaultState().with(FORMED, false));
|
this.setDefaultState(this.getDefaultState().with(FORMED, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ import appeng.container.ContainerLocator;
|
|||||||
import appeng.container.ContainerOpener;
|
import appeng.container.ContainerOpener;
|
||||||
import appeng.container.implementations.QNBContainer;
|
import appeng.container.implementations.QNBContainer;
|
||||||
import appeng.core.AppEng;
|
import appeng.core.AppEng;
|
||||||
import appeng.helpers.AEGlassMaterial;
|
import appeng.helpers.AEMaterials;
|
||||||
import appeng.tile.qnb.QuantumBridgeTileEntity;
|
import appeng.tile.qnb.QuantumBridgeTileEntity;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ public class QuantumLinkChamberBlock extends QuantumBaseBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public QuantumLinkChamberBlock() {
|
public QuantumLinkChamberBlock() {
|
||||||
super(defaultProps(AEGlassMaterial.INSTANCE));
|
super(defaultProps(AEMaterials.GLASS));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -25,13 +25,13 @@ import net.minecraft.world.IBlockReader;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
import appeng.block.AEBaseTileBlock;
|
import appeng.block.AEBaseTileBlock;
|
||||||
import appeng.helpers.AEGlassMaterial;
|
import appeng.helpers.AEMaterials;
|
||||||
import appeng.tile.spatial.SpatialPylonTileEntity;
|
import appeng.tile.spatial.SpatialPylonTileEntity;
|
||||||
|
|
||||||
public class SpatialPylonBlock extends AEBaseTileBlock<SpatialPylonTileEntity> {
|
public class SpatialPylonBlock extends AEBaseTileBlock<SpatialPylonTileEntity> {
|
||||||
|
|
||||||
public SpatialPylonBlock() {
|
public SpatialPylonBlock() {
|
||||||
super(defaultProps(AEGlassMaterial.INSTANCE));
|
super(defaultProps(AEMaterials.GLASS));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import net.minecraft.block.BlockState;
|
|||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
|
|
||||||
import appeng.helpers.AEGlassMaterial;
|
import appeng.helpers.AEMaterials;
|
||||||
|
|
||||||
public class QuartzGlassBlock extends AbstractGlassBlock {
|
public class QuartzGlassBlock extends AbstractGlassBlock {
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ public class QuartzGlassBlock extends AbstractGlassBlock {
|
|||||||
@Override
|
@Override
|
||||||
public boolean isSideInvisible(BlockState state, BlockState adjacentBlockState, Direction side) {
|
public boolean isSideInvisible(BlockState state, BlockState adjacentBlockState, Direction side) {
|
||||||
final Material mat = adjacentBlockState.getMaterial();
|
final Material mat = adjacentBlockState.getMaterial();
|
||||||
if (mat == Material.GLASS || mat == AEGlassMaterial.INSTANCE) {
|
if (mat == Material.GLASS || mat == AEMaterials.GLASS) {
|
||||||
if (adjacentBlockState.getRenderType() == state.getRenderType()) {
|
if (adjacentBlockState.getRenderType() == state.getRenderType()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-3
@@ -22,9 +22,30 @@ import net.minecraft.block.material.Material;
|
|||||||
import net.minecraft.block.material.MaterialColor;
|
import net.minecraft.block.material.MaterialColor;
|
||||||
import net.minecraft.block.material.PushReaction;
|
import net.minecraft.block.material.PushReaction;
|
||||||
|
|
||||||
public class AEGlassMaterial {
|
public class AEMaterials {
|
||||||
|
|
||||||
public static final Material INSTANCE = new Material(MaterialColor.AIR, false, false, true, false, true, false,
|
public static final Material GLASS = make(MaterialColor.AIR, false, false, true, false, true, false, false,
|
||||||
false, PushReaction.NORMAL);
|
PushReaction.NORMAL);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Small factory helper with named parameters.
|
||||||
|
*
|
||||||
|
* @param color
|
||||||
|
* @param isLiquid
|
||||||
|
* @param isSolid
|
||||||
|
* @param blocksMovement
|
||||||
|
* @param isOpaque
|
||||||
|
* @param requiresNoTool
|
||||||
|
* @param flammable
|
||||||
|
* @param replaceable
|
||||||
|
* @param pushReaction
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static Material make(MaterialColor color, boolean isLiquid, boolean isSolid, boolean blocksMovement,
|
||||||
|
boolean isOpaque, boolean requiresNoTool, boolean flammable, boolean replaceable,
|
||||||
|
PushReaction pushReaction) {
|
||||||
|
return new Material(color, isLiquid, isSolid, blocksMovement, isOpaque, requiresNoTool, flammable, replaceable,
|
||||||
|
pushReaction);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user