Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions src/net/morbz/minecraft/blocks/Facing5Block.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package net.morbz.minecraft.blocks;

import net.morbz.minecraft.blocks.states.Facing5State;

/**
* Base class for any block that can face east, west, south, north, or up.
*/
public abstract class Facing5Block implements IBlock {

private Facing5State facing;

/**
* Creates a new instance.
*
* @param facing The direction in which the torch is facing
*/
public Facing5Block(Facing5State facing) {
this.facing = facing;
}

/**
* {@inheritDoc}
*/
@Override
public byte getBlockData() {
// Facing direction
byte data = 0;
switch(facing) {
case EAST:
data = 1;
break;
case WEST:
data = 2;
break;
case SOUTH:
data = 3;
break;
case NORTH:
data = 4;
break;
case UP:
data = 5;
break;
}
return data;
}

/**
* Returns the material from which this block is made
* @return the Material
*/
protected abstract Material getMaterial();

/**
* {@inheritDoc}
*/
@Override
public byte getBlockId() {
return (byte)getMaterial().getValue();
}

/**
* {@inheritDoc}
*/
@Override
public int getTransparency() {
return getMaterial().getTransparency();
}
}
58 changes: 58 additions & 0 deletions src/net/morbz/minecraft/blocks/Material.java
Original file line number Diff line number Diff line change
Expand Up @@ -255,4 +255,62 @@ public int getTransparency() {
public static final Material JUNGLE_DOOR = new Material(195, 1); // √
public static final Material ACACIA_DOOR = new Material(196, 1); // √
public static final Material DARK_OAK_DOOR = new Material(197, 1); // √
public static final Material END_ROD = new Material(198, 0);
public static final Material CHORUS_PLANT = new Material(199, 1);
public static final Material CHORUS_FLOWER = new Material(200, 1);
public static final Material PURPUR_BLOCK = new Material(201, 0);
public static final Material PURPUR_PILLAR = new Material(202, 0);
public static final Material PURPUR_STAIRS = new Material(203, 0); // Partial transparency
public static final Material PURPUR_DOUBLE_SLAB = new Material(204, 0);
public static final Material PURPUR_SLAB = new Material(205, 1);
public static final Material END_BRICKS = new Material(206, 0);
public static final Material BEETROOTS = new Material(207, 1);
public static final Material GRASS_PATH = new Material(208, 0);
public static final Material END_GATEWAY = new Material(209, 0);
public static final Material REPEATING_COMMAND_BLOCK = new Material(210, 0);
public static final Material CHAIN_COMMAND_BLOCK = new Material(211, 0);
public static final Material FROSTED_ICE = new Material(212, 2); // Partial transparency (-2 to light)
public static final Material MAGMA = new Material(213, 0);
public static final Material NETHER_WART_BLOCK = new Material(214, 0);
public static final Material RED_NETHER_BRICK = new Material(215, 0);
public static final Material BONE_BLOCK = new Material(216, 0);
public static final Material STRUCTURE_VOID = new Material(217, 1); // Transparency guessed from text on Structure Block wiki: "they are invisible" (referring to Structure Void)
public static final Material OBSERVER = new Material(218, 0); // Partial transparency
public static final Material WHITE_SHULKER_BOX = new Material(219, 1);
public static final Material ORANGE_SHULKER_BOX = new Material(220, 1);
public static final Material MAGENTA_SHULKER_BOX = new Material(221, 1);
public static final Material LIGHT_BLUE_SHULKER_BOX = new Material(222, 1);
public static final Material YELLOW_SHULKER_BOX = new Material(223, 1);
public static final Material LIME_SHULKER_BOX = new Material(224, 1);
public static final Material PINK_SHULKER_BOX = new Material(225, 1);
public static final Material GRAY_SHULKER_BOX = new Material(226, 1);
public static final Material SILVER_SHULKER_BOX = new Material(227, 1);
public static final Material CYAN_SHULKER_BOX = new Material(228, 1);
public static final Material PURPLE_SHULKER_BOX = new Material(229, 1);
public static final Material BLUE_SHULKER_BOX = new Material(230, 1);
public static final Material BROWN_SHULKER_BOX = new Material(231, 1);
public static final Material GREEN_SHULKER_BOX = new Material(232, 1);
public static final Material RED_SHULKER_BOX = new Material(233, 1);
public static final Material BLACK_SHULKER_BOX = new Material(234, 1);
public static final Material WHITE_GLAZED_TERRACOTTA = new Material(235, 0);
public static final Material ORANGE_GLAZED_TERRACOTTA = new Material(236, 0);
public static final Material MAGENTA_GLAZED_TERRACOTTA = new Material(237, 0);
public static final Material LIGHT_BLUE_GLAZED_TERRACOTTA = new Material(238, 0);
public static final Material YELLOW_GLAZED_TERRACOTTA = new Material(239, 0);
public static final Material LIME_GLAZED_TERRACOTTA = new Material(240, 0);
public static final Material PINK_GLAZED_TERRACOTTA = new Material(241, 0);
public static final Material GRAY_GLAZED_TERRACOTTA = new Material(242, 0);
public static final Material SILVER_GLAZED_TERRACOTTA = new Material(243, 0);
public static final Material CYAN_GLAZED_TERRACOTTA = new Material(244, 0);
public static final Material PURPLE_GLAZED_TERRACOTTA = new Material(245, 0);
public static final Material BLUE_GLAZED_TERRACOTTA = new Material(246, 0);
public static final Material BROWN_GLAZED_TERRACOTTA = new Material(247, 0);
public static final Material GREEN_GLAZED_TERRACOTTA = new Material(248, 0);
public static final Material RED_GLAZED_TERRACOTTA = new Material(249, 0);
public static final Material BLACK_GLAZED_TERRACOTTA = new Material(250, 0);
public static final Material CONCRETE = new Material(251, 0);
public static final Material CONCRETE_POWDER = new Material(252, 0);
// there is no block with ID 253
// there is no block with ID 254
public static final Material STRUCTURE_BLOCK = new Material(255, 0);
}
45 changes: 4 additions & 41 deletions src/net/morbz/minecraft/blocks/RedstoneTorchBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,8 @@
*
* @author MorbZ
*/
public class RedstoneTorchBlock implements IBlock {
public class RedstoneTorchBlock extends Facing5Block {
private boolean isActive;
private Facing5State facing;

/**
* Creates a new instance.
Expand All @@ -42,52 +41,16 @@ public class RedstoneTorchBlock implements IBlock {
* @param facing The direction in which the torch is facing
*/
public RedstoneTorchBlock(boolean isActive, Facing5State facing) {
super(facing);
this.isActive = isActive;
this.facing = facing;
}

/**
* {@inheritDoc}
*/
@Override
public byte getBlockId() {
protected Material getMaterial() {
// Is active?
Material material = isActive ? Material.REDSTONE_TORCH : Material.UNLIT_REDSTONE_TORCH;
return (byte)material.getValue();
}

/**
* {@inheritDoc}
*/
@Override
public byte getBlockData() {
// Facing direction
byte data = 0;
switch(facing) {
case EAST:
data = 1;
break;
case WEST:
data = 2;
break;
case SOUTH:
data = 3;
break;
case NORTH:
data = 4;
break;
case UP:
data = 5;
break;
}
return data;
}

/**
* {@inheritDoc}
*/
@Override
public int getTransparency() {
return 1;
return isActive ? Material.REDSTONE_TORCH : Material.UNLIT_REDSTONE_TORCH;
}
}
23 changes: 23 additions & 0 deletions src/net/morbz/minecraft/blocks/TorchBlock.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package net.morbz.minecraft.blocks;

import net.morbz.minecraft.blocks.states.Facing5State;

public class TorchBlock extends Facing5Block {

/**
* Creates a new instance.
*
* @param facing The direction in which the torch is facing
*/
public TorchBlock(Facing5State facing) {
super(facing);
}

/**
* {@inheritDoc}
*/
@Override
protected Material getMaterial() {
return Material.TORCH;
}
}