package micdoodle8.mods.galacticraft.core.client.model.block;
import com.google.common.collect.ImmutableList;
import micdoodle8.mods.galacticraft.core.blocks.BlockPanelLighting;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.resources.model.IBakedModel;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumWorldBlockLayer;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.client.model.ISmartBlockModel;
import net.minecraftforge.common.property.IExtendedBlockState;
import java.util.List;
public class ModelPanelLightBase implements ISmartBlockModel
{
private final ModelResourceLocation callingBlock;
public ModelPanelLightBase (ModelResourceLocation blockLoc)
{
this.callingBlock = blockLoc;
}
@Override
public IBakedModel handleBlockState(IBlockState state)
{
if (!(state.getBlock() instanceof BlockPanelLighting))
{
return this;
}
IBlockState baseState = ((IExtendedBlockState) state).getValue(BlockPanelLighting.BASE_STATE);
if (baseState == null)
{
if (MinecraftForgeClient.getRenderLayer() == EnumWorldBlockLayer.SOLID)
{
return Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getModel(this.callingBlock);
}
}
else if (baseState.getBlock().canRenderInLayer(MinecraftForgeClient.getRenderLayer()))
{
return Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getModelForState(baseState);
}
return this;
}
@Override
public List<BakedQuad> getFaceQuads(EnumFacing p_177551_1_)
{
return ImmutableList.of();
}
@Override
public List<BakedQuad> getGeneralQuads()
{
return ImmutableList.of();
}
@Override
public boolean isAmbientOcclusion()
{
return true;
}
@Override
public boolean isGui3d()
{
return true;
}
@Override
public boolean isBuiltInRenderer()
{
return false;
}
@Override
public TextureAtlasSprite getParticleTexture()
{
return Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite("minecraft:blocks/glass");
}
@Override
public ItemCameraTransforms getItemCameraTransforms()
{
return ItemCameraTransforms.DEFAULT;
}
}