Skip to content

Commit

Permalink
Added a bunch of disguise states for vanilla blocks and firestarter/d…
Browse files Browse the repository at this point in the history
…rawbridge
  • Loading branch information
fuj1n committed Apr 29, 2020
1 parent fcdaba3 commit f3efa5e
Show file tree
Hide file tree
Showing 17 changed files with 209 additions and 5 deletions.
Expand Up @@ -2,13 +2,26 @@

import net.minecraft.block.BlockState;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.Direction;

import java.util.ArrayList;

public final class DisguiseStates {
public static ArrayList<DisguiseState<?>> disguiseStates = new ArrayList<>();

public static final SlabTypeDisguiseState SLAB_TYPE = new SlabTypeDisguiseState();
public static final OpenDisguiseState OPEN = new OpenDisguiseState();
public static final LitDisguiseState LIT = new LitDisguiseState();
public static final PicklesDisguiseState PICKLES = new PicklesDisguiseState();
public static final LayersDisguiseState LAYERS = new LayersDisguiseState();
public static final LevelDisguiseState LEVEL = new LevelDisguiseState();
public static final EyeDisguiseState EYE = new EyeDisguiseState();
public static final SnowyDisguiseState SNOWY = new SnowyDisguiseState();
public static final HoneyLevelDisguiseState HONEY_LEVEL = new HoneyLevelDisguiseState();
public static final HasBookDisguiseState HAS_BOOK = new HasBookDisguiseState();
public static final PoweredDisguiseState POWERED = new PoweredDisguiseState();
public static final FirestarterExtinguishDisguiseState FIRESTARTER_EXTINGUISH = new FirestarterExtinguishDisguiseState();
public static final DrawbridgeAdvancedDisguiseState DRAWBRIDGE_ADVANCED = new DrawbridgeAdvancedDisguiseState();

public static DisguiseState<?> getForState(BlockState state) {
for(DisguiseState<?> ds : DisguiseStates.disguiseStates) {
Expand All @@ -19,9 +32,9 @@ public static DisguiseState<?> getForState(BlockState state) {
return null;
}

public static BlockState processDisguiseStates(BlockState state, String disguiseState) {
public static BlockState processDisguiseStates(BlockState state, String disguiseState, Direction facing) {
if (state.has(BlockStateProperties.FACING))
state = state.with(BlockStateProperties.FACING, state.get(BlockStateProperties.FACING));
state = state.with(BlockStateProperties.FACING, facing);

DisguiseState<?> ds = getForState(state);
if(ds != null) {
Expand All @@ -33,5 +46,18 @@ public static BlockState processDisguiseStates(BlockState state, String disguise

static {
disguiseStates.add(SLAB_TYPE);
disguiseStates.add(OPEN);
disguiseStates.add(LIT);
disguiseStates.add(PICKLES);
disguiseStates.add(LAYERS);
disguiseStates.add(LEVEL);
disguiseStates.add(EYE);
disguiseStates.add(SNOWY);
disguiseStates.add(HONEY_LEVEL);
// disguiseStates.add(HAS_BOOK); // Not rendering
disguiseStates.add(POWERED);

disguiseStates.add(FIRESTARTER_EXTINGUISH);
disguiseStates.add(DRAWBRIDGE_ADVANCED);
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import slimeknights.tmechworks.common.blocks.DrawbridgeBlock;

public class DrawbridgeAdvancedDisguiseState extends BasicDisguiseState<Boolean> {
public DrawbridgeAdvancedDisguiseState() {
super(DrawbridgeBlock.ADVANCED, false);
}

@Override
public int getIconFor(Boolean value) {
return value ? 27 : 26;
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import net.minecraft.state.properties.BlockStateProperties;

public class EyeDisguiseState extends BasicDisguiseState<Boolean> {
public EyeDisguiseState() {
super(BlockStateProperties.EYE, false);
}

@Override
public int getIconFor(Boolean value) {
return value ? 23 : 22;
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import slimeknights.tmechworks.common.blocks.FirestarterBlock;

public class FirestarterExtinguishDisguiseState extends BasicDisguiseState<Boolean> {
public FirestarterExtinguishDisguiseState() {
super(FirestarterBlock.EXTINGUISH, false);
}

@Override
public int getIconFor(Boolean value) {
return value ? 7 : 6;
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import net.minecraft.state.properties.BlockStateProperties;

public class HasBookDisguiseState extends BasicDisguiseState<Boolean> {
public HasBookDisguiseState() {
super(BlockStateProperties.HAS_BOOK, false);
}

@Override
public int getIconFor(Boolean value) {
return value ? 27 : 26;
}
}
@@ -0,0 +1,22 @@
package slimeknights.tmechworks.api.disguisestate;

import com.google.common.collect.ImmutableSet;
import net.minecraft.state.properties.BlockStateProperties;

import java.util.Collection;

public class HoneyLevelDisguiseState extends BasicDisguiseState<Integer> {
public HoneyLevelDisguiseState() {
super(BlockStateProperties.HONEY_LEVEL, 1);
}

@Override
public Collection<Integer> getAllowedValues() {
return ImmutableSet.of(0, 5);
}

@Override
public int getIconFor(Integer value) {
return value == 0 ? 24 : 25;
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import net.minecraft.state.properties.BlockStateProperties;

public class LayersDisguiseState extends BasicDisguiseState<Integer> {
public LayersDisguiseState() {
super(BlockStateProperties.LAYERS_1_8, 1);
}

@Override
public int getIconFor(Integer value) {
return 13 + value;
}
}
@@ -0,0 +1,16 @@
package slimeknights.tmechworks.api.disguisestate;

import net.minecraft.state.properties.BlockStateProperties;

public class LevelDisguiseState extends BasicDisguiseState<Integer> {
public LevelDisguiseState() {
super(BlockStateProperties.LEVEL_0_8, 1);
}

@Override
public int getIconFor(Integer value) {
if(value == 0)
return 26;
return 13 + value;
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import net.minecraft.state.properties.BlockStateProperties;

public class LitDisguiseState extends BasicDisguiseState<Boolean> {
public LitDisguiseState() {
super(BlockStateProperties.LIT, false);
}

@Override
public int getIconFor(Boolean value) {
return value ? 6 : 7;
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import net.minecraft.state.properties.BlockStateProperties;

public class OpenDisguiseState extends BasicDisguiseState<Boolean> {
public OpenDisguiseState() {
super(BlockStateProperties.OPEN, false);
}

@Override
public int getIconFor(Boolean value) {
return value ? 4 : 5;
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import net.minecraft.state.properties.BlockStateProperties;

public class PicklesDisguiseState extends BasicDisguiseState<Integer> {
public PicklesDisguiseState() {
super(BlockStateProperties.PICKLES_1_4, 1);
}

@Override
public int getIconFor(Integer value) {
return 7 + value;
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import net.minecraft.state.properties.BlockStateProperties;

public class PoweredDisguiseState extends BasicDisguiseState<Boolean> {
public PoweredDisguiseState() {
super(BlockStateProperties.POWERED, false);
}

@Override
public int getIconFor(Boolean value) {
return value ? 29 : 28;
}
}
@@ -0,0 +1,14 @@
package slimeknights.tmechworks.api.disguisestate;

import net.minecraft.state.properties.BlockStateProperties;

public class SnowyDisguiseState extends BasicDisguiseState<Boolean> {
public SnowyDisguiseState() {
super(BlockStateProperties.SNOWY, false);
}

@Override
public int getIconFor(Boolean value) {
return value ? 6 : 7;
}
}
Expand Up @@ -60,7 +60,7 @@ public void renderButton(int mouseX, int mouseY, float partialTicks) {
int yPos = y + row * 8;

if(row == 0 && rem == 1)
yPos += 12;
yPos += 8;
else if(row == 0 && rem == 2)
yPos += 4;
else if(row == 1 && rem == 1)
Expand Down
Expand Up @@ -56,7 +56,7 @@ public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction
BlockItem disguiseItem = (BlockItem) disguise.getItem();

BlockState disguiseState = disguiseItem.getBlock().getDefaultState();
disguiseState = DisguiseStates.processDisguiseStates(disguiseState, extraData.getData(DISGUISE_STATE));
disguiseState = DisguiseStates.processDisguiseStates(disguiseState, extraData.getData(DISGUISE_STATE), state.get(BlockStateProperties.FACING));

if (RenderTypeLookup.canRenderInLayer(disguiseState, MinecraftForgeClient.getRenderLayer())) {
IBakedModel model = Minecraft.getInstance().getBlockRendererDispatcher().getBlockModelShapes().getModel(disguiseState);
Expand Down
Expand Up @@ -287,7 +287,7 @@ public <T> T runOnDisguiseBlock(BlockState state, IBlockReader worldIn, BlockPos

if (disguise.getItem() instanceof BlockItem) {
BlockState disguiseState = ((BlockItem) disguise.getItem()).getBlock().getDefaultState();
disguiseState = DisguiseStates.processDisguiseStates(disguiseState, ((RedstoneMachineTileEntity) te).getDisguiseState());
disguiseState = DisguiseStates.processDisguiseStates(disguiseState, ((RedstoneMachineTileEntity) te).getDisguiseState(), state.get(BlockStateProperties.FACING));

return func.apply(disguiseState);
}
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit f3efa5e

Please sign in to comment.