Skip to content

Commit

Permalink
Fix #160 Ceramic Brick Block Meta
Browse files Browse the repository at this point in the history
  • Loading branch information
Nedelosk committed Jul 31, 2017
1 parent c5f2368 commit cbe86e8
Show file tree
Hide file tree
Showing 9 changed files with 246 additions and 128 deletions.
Expand Up @@ -167,15 +167,17 @@ public IBlockState getExtendedState(IBlockState state, IBlockAccess world, Block

@Override
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand) {
return getDefaultState().withProperty(TYPE, CeramicBrickType.get(meta >> 16 & 0xFF));
ItemStack stack = placer.getHeldItem(hand);
CeramicBrickPair pair = new CeramicBrickPair(stack);
return getDefaultState().withProperty(TYPE, pair.type);
}

@Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
TileCeramicBrick ceramic = TileUtil.getTile(worldIn, pos, TileCeramicBrick.class);
if (ceramic != null) {
int damage = stack.getItemDamage();
ceramic.setColors(EnumFlowerColor.get(damage & 0xFF), EnumFlowerColor.get(damage >> 8 & 0xFF));
CeramicBrickPair pair = new CeramicBrickPair(stack);
ceramic.setColors(pair.colorFirst, pair.colorSecond);
}
}

Expand Down
23 changes: 18 additions & 5 deletions src/main/java/binnie/botany/ceramic/brick/CeramicBrickPair.java
Expand Up @@ -4,16 +4,19 @@

import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagInt;

import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import binnie.botany.Botany;
import binnie.botany.genetics.EnumFlowerColor;
import binnie.core.block.TileEntityMetadata;
import binnie.core.util.I18N;

public class CeramicBrickPair {
public static final CeramicBrickPair EMPTY = new CeramicBrickPair(EnumFlowerColor.DarkSeaGreen, EnumFlowerColor.DarkSeaGreen, CeramicBrickType.TILE);

public final EnumFlowerColor colorFirst;
public final EnumFlowerColor colorSecond;

Expand All @@ -28,7 +31,7 @@ public class CeramicBrickPair {
}

public CeramicBrickPair(ItemStack stack) {
this(TileEntityMetadata.getItemDamage(stack));
this(getId(stack));
}

public CeramicBrickPair(int id) {
Expand All @@ -41,8 +44,18 @@ public boolean isTwoColors() {
return type.canDouble() && colorSecond != colorFirst;
}

public static int getId(ItemStack stack){
if(!stack.hasTagCompound()){
return EMPTY.ordinal();
}
NBTTagCompound nbtTagCompound = stack.getTagCompound();
return nbtTagCompound.getInteger("id");
}

public ItemStack getStack(int i) {
return new ItemStack(Botany.gardening().ceramicBrick, i, ordinal());
ItemStack stack = new ItemStack(Botany.gardening().ceramicBrick, i);
stack.setTagInfo("id", new NBTTagInt(ordinal()));
return stack;
}

public String getName() {
Expand All @@ -66,12 +79,12 @@ public TextureAtlasSprite getSprite(int pass) {

@Override
public int hashCode() {
return Integer.hashCode(ordinal());
return Integer.hashCode(type.ordinal());
}

@Override
public boolean equals(Object obj) {
return obj instanceof CeramicBrickPair
&& ((CeramicBrickPair) obj).ordinal() == ordinal();
&& ((CeramicBrickPair) obj).type == type;
}
}
Expand Up @@ -21,7 +21,7 @@ public int getMetadata(int metadata) {
@SideOnly(Side.CLIENT)
@Override
public int getColorFromItemstack(ItemStack stack, int tintIndex) {
CeramicBrickPair ceramic = new CeramicBrickPair(stack.getItemDamage());
CeramicBrickPair ceramic = new CeramicBrickPair(stack);
if (tintIndex == 1) {
return ceramic.colorFirst.getFlowerColorAllele().getColor(false);
} else if (tintIndex == 2) {
Expand All @@ -33,6 +33,6 @@ public int getColorFromItemstack(ItemStack stack, int tintIndex) {
@Override
@SideOnly(Side.CLIENT)
public String getItemStackDisplayName(ItemStack itemStack) {
return new CeramicBrickPair(itemStack.getItemDamage()).getName();
return new CeramicBrickPair(itemStack).getName();
}
}
2 changes: 1 addition & 1 deletion src/main/java/binnie/core/models/ModelMutlipass.java
Expand Up @@ -74,7 +74,7 @@ protected void bakeBlock(B block, K key, IModelBaker baker, boolean inventory) {

// Set the particle sprite
//TODO: Adding a breaking sprite
baker.setParticleSprite(block.getSprite(key, null, 0));
baker.setParticleSprite(block.getSprite(key, null, 1));
}

@Override
Expand Down
@@ -1,11 +1,11 @@
package binnie.extrabees.circuit;

import net.minecraft.util.text.translation.I18n;

import forestry.api.circuits.ChipsetManager;
import forestry.api.circuits.ICircuitLayout;
import forestry.api.circuits.ICircuitSocketType;

import binnie.core.util.I18N;

public class BinnieCircuitLayout implements ICircuitLayout {

private final String uid;
Expand All @@ -24,12 +24,12 @@ public String getUID() {

@Override
public String getName() {
return I18n.translateToLocal("circuit.layout." + this.uid.toLowerCase());
return I18N.localise("circuit.layout." + this.uid.toLowerCase());
}

@Override
public String getUsage() {
return I18n.translateToLocal("circuit.layout." + this.uid.toLowerCase() + ".usage");
return I18N.localise("circuit.layout." + this.uid.toLowerCase() + ".usage");
}

@Override
Expand Down
206 changes: 104 additions & 102 deletions src/main/java/binnie/extratrees/carpentry/EnumDesign.java
Expand Up @@ -3,113 +3,114 @@
import java.util.ArrayList;
import java.util.List;

import binnie.core.util.I18N;
import binnie.extratrees.api.CarpentryManager;
import binnie.extratrees.api.IDesign;
import binnie.extratrees.api.IDesignCategory;
import binnie.extratrees.api.ILayout;

public enum EnumDesign implements IDesign {
Blank("Blank"),
Octagon("Octagon"),
Diamond("Diamond"),
Ringed("Ringed"),
Squared("Squared"),
Multiply("Multiply"),
Halved("Halved"),
Striped("Striped"),
ThinStriped("Thin Striped"),
Chequered("Full Chequered"),
Tiled("Full Tiled"),
ChequeredB("Chequered"),
TiledB("Tiled"),
VeryThinCorner("Very Thin Cornered"),
ThinCorner("Thin Cornered"),
Corner("Cornered"),
ThickCorner("Thick Cornered"),
Edged("Edged"),
ThinEdged("Thin Edged"),
ThinBarred("Thin Barred"),
Barred("Barred"),
ThickBarred("Thick Barred"),
Diagonal("Diagonal"),
ThickDiagonal("Thick Diagonal"),
ThinSaltire("Thin Saltire"),
Saltire("Saltire"),
ThickSaltire("Thick Saltire"),
ThinCrossed("Thin Crossed"),
Crossed("Crossed"),
ThickCrossed("Thick Crossed"),
ThinTSection("Thin T Section"),
TSection("T Section"),
ThickTSection("Thick T Section"),
ThinBarredCorner("Thin Barred Corner"),
BarredCorner("Barred Corner"),
ThickBarredCorner("Thick Barred Corner"),
ThinStripedCorner("Thin Striped Corner"),
StripedCorner("Striped Corner"),
Emblem1("Emblem 1"),
Emblem2("Emblem 2"),
Emblem3("Emblem 3"),
Emblem4("Emblem 4"),
Emblem5("Emblem 5"),
LetterA("Letter A"),
LetterB("Letter B"),
LetterC("Letter C"),
LetterD("Letter D"),
LetterE("Letter E"),
LetterF("Letter F"),
LetterG("Letter G"),
LetterH("Letter H"),
LetterI("Letter I"),
LetterJ("Letter J"),
LetterK("Letter K"),
LetterL("Letter L"),
LetterM("Letter M"),
LetterN("Letter N"),
LetterO("Letter O"),
LetterP("Letter P"),
LetterQ("Letter Q"),
LetterR("Letter R"),
LetterS("Letter S"),
LetterT("Letter T"),
LetterU("Letter U"),
LetterV("Letter V"),
LetterW("Letter W"),
LetterX("Letter X"),
LetterY("Letter Y"),
LetterZ("Letter Z"),
ThinCurvedCrossed("Thin Curved Crossed"),
ThinCurvedBarredCorner("Thin Curved Barred Corner"),
CurvedBarredCorner("Curved Barred Corner"),
ThinCurvedCorner("Thin Curved Corner"),
CurvedCorner("Curved Corner"),
ThinCurvedTSection("Thin Curved T Section"),
CurvedTSection("Curved T Section"),
BarredEnd("Barred End"),
DiagonalCorner("Diagonal Corner"),
DiagonalTSection("Diagonal T Section"),
DiagonalCurvedCorner("Diagonal Curved Corner"),
DiagonalCurvedTSection("Diagonal Curved T Section"),
OrnateBarred("Ornate Barred"),
SplitBarred("Split Barred"),
SplitBarredCorner("Split Barred Corner"),
SplitBarredTSection("Split Barred T Section"),
SplitCrossed("Split Crossed"),
SplitBarredEnd("Split Barred End"),
OrnateThinBarred("Ornate Thin Barred"),
Circle("Circle"),
Plus("Plus"),
Creeper("Creeper"),
OrnateStripedCorner("Ornate Striped Corner"),
Test("Testing Block"),
DiagonalHalved("Diagonal Halved"),
Diagonal1Edged("Cornered Diagonal"),
Diagonal2Edged("Opposite Cornered Diagonal"),
ThickDiagonal1Edged("Thick Cornered Diagonal"),
ThinBarredEnd("Thin Barred End"),
ThickBarredEnd("Thick Barred End"),
OverlappedBarred("Overlapped Barred"),
OverlappedSplitBarred("Overlapped Split Barred");
Blank("blank"),
Octagon("octagon"),
Diamond("diamond"),
Ringed("ringed"),
Squared("squared"),
Multiply("multiply"),
Halved("halved"),
Striped("striped"),
ThinStriped("thin.striped"),
Chequered("full.chequered"),
Tiled("full.tiled"),
ChequeredB("chequered"),
TiledB("tiled"),
VeryThinCorner("very.thin.cornered"),
ThinCorner("thin.cornered"),
Corner("cornered"),
ThickCorner("thick.cornered"),
Edged("edged"),
ThinEdged("thin.edged"),
ThinBarred("thin.barred"),
Barred("barred"),
ThickBarred("thick.barred"),
Diagonal("diagonal"),
ThickDiagonal("thick.diagonal"),
ThinSaltire("thin.saltire"),
Saltire("saltire"),
ThickSaltire("thick.saltire"),
ThinCrossed("thin.crossed"),
Crossed("crossed"),
ThickCrossed("thick.crossed"),
ThinTSection("thin.t.section"),
TSection("t.section"),
ThickTSection("thick.t.section"),
ThinBarredCorner("thin.barred.corner"),
BarredCorner("barred.corner"),
ThickBarredCorner("thick.barred.corner"),
ThinStripedCorner("thin.striped.corner"),
StripedCorner("striped.corner"),
Emblem1("emblem.1"),
Emblem2("emblem.2"),
Emblem3("emblem.3"),
Emblem4("emblem.4"),
Emblem5("emblem.5"),
LetterA("letter.a"),
LetterB("letter.b"),
LetterC("letter.c"),
LetterD("letter.d"),
LetterE("letter.e"),
LetterF("letter.f"),
LetterG("letter.g"),
LetterH("letter.h"),
LetterI("letter.i"),
LetterJ("letter.j"),
LetterK("letter.k"),
LetterL("letter.l"),
LetterM("letter.m"),
LetterN("letter.n"),
LetterO("letter.o"),
LetterP("letter.p"),
LetterQ("letter.q"),
LetterR("letter.r"),
LetterS("letter.s"),
LetterT("letter.t"),
LetterU("letter.u"),
LetterV("letter.v"),
LetterW("letter.w"),
LetterX("letter.x"),
LetterY("letter.y"),
LetterZ("letter.z"),
ThinCurvedCrossed("thin.curved.crossed"),
ThinCurvedBarredCorner("thin.curved.barred.corner"),
CurvedBarredCorner("curved.barred.corner"),
ThinCurvedCorner("thin.curved.corner"),
CurvedCorner("curved.corner"),
ThinCurvedTSection("thin.curved.t.section"),
CurvedTSection("curved.t.section"),
BarredEnd("barred.end"),
DiagonalCorner("diagonal.corner"),
DiagonalTSection("diagonal.t.section"),
DiagonalCurvedCorner("diagonal.curved.corner"),
DiagonalCurvedTSection("diagonal.curved.t.section"),
OrnateBarred("ornate.barred"),
SplitBarred("split.barred"),
SplitBarredCorner("split.barred.corner"),
SplitBarredTSection("split.barred.t.section"),
SplitCrossed("split.crossed"),
SplitBarredEnd("split.barred.end"),
OrnateThinBarred("ornate.thin.barred"),
Circle("circle"),
Plus("plus"),
Creeper("creeper"),
OrnateStripedCorner("ornate.striped.corner"),
Test("testing.block"),
DiagonalHalved("diagonal.halved"),
Diagonal1Edged("cornered.diagonal"),
Diagonal2Edged("opposite.cornered.diagonal"),
ThickDiagonal1Edged("thick.cornered.diagonal"),
ThinBarredEnd("thin.barred.end"),
ThickBarredEnd("thick.barred.end"),
OverlappedBarred("overlapped.barred"),
OverlappedSplitBarred("overlapped.split.barred");

static {
Category.Design.addDesign(EnumDesign.Blank);
Expand Down Expand Up @@ -290,6 +291,7 @@ public enum EnumDesign implements IDesign {
this.westPattern = Layout.get(EnumPattern.Blank, false);
this.name = name;
}


void setEdgePatterns(final ILayout north, final ILayout east, final ILayout south, final ILayout west) {
this.setNorthPattern(north);
Expand Down Expand Up @@ -415,7 +417,7 @@ private void setAllPatterns(final ILayout layout) {

@Override
public String getName() {
return this.name;
return I18N.localise("extratrees.carpentry.design." + this.name);
}

public void setName(final String name) {
Expand Down
Expand Up @@ -154,8 +154,9 @@ public boolean addComponentParts(World worldIn, Random randomIn, StructureBoundi

return true;
}

@Override
@SuppressWarnings("deprecation")
protected void setBlockState(World worldIn, IBlockState blockstateIn, int x, int y, int z, StructureBoundingBox boundingboxIn) {
super.setBlockState(worldIn, blockstateIn, x, y, z, boundingboxIn);
Block block = blockstateIn.getBlock();
Expand Down

0 comments on commit cbe86e8

Please sign in to comment.