Created
June 14, 2019 16:06
-
-
Save mlugg/45f01f5d055126ed6378d7dc94fee1b3 to your computer and use it in GitHub Desktop.
DummyGasItem rendering code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package uk.co.mlugg.addedcells.mekanism.item.render; | |
import java.util.Collections; | |
import java.util.List; | |
import java.util.Optional; | |
import mekanism.api.gas.Gas; | |
import mekanism.api.gas.GasStack; | |
import net.minecraft.block.state.IBlockState; | |
import net.minecraft.client.renderer.block.model.BakedQuad; | |
import net.minecraft.client.renderer.block.model.IBakedModel; | |
import net.minecraft.client.renderer.block.model.ItemOverrideList; | |
import net.minecraft.client.renderer.texture.TextureAtlasSprite; | |
import net.minecraft.client.renderer.vertex.VertexFormat; | |
import net.minecraft.entity.EntityLivingBase; | |
import net.minecraft.item.ItemStack; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.world.World; | |
import net.minecraftforge.client.model.ItemLayerModel; | |
import uk.co.mlugg.addedcells.mekanism.item.ItemDummyGas; | |
public class BakedModelDispatcherDummyGas implements IBakedModel { | |
private final VertexFormat format; | |
public BakedModelDispatcherDummyGas(VertexFormat format) { | |
this.format = format; | |
} | |
@Override | |
public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) { | |
return Collections.emptyList(); | |
} | |
@Override | |
public boolean isAmbientOcclusion() { | |
return false; | |
} | |
@Override | |
public boolean isGui3d() { | |
return false; | |
} | |
@Override | |
public boolean isBuiltInRenderer() { | |
return false; | |
} | |
@Override | |
public TextureAtlasSprite getParticleTexture() { | |
return null; | |
} | |
@Override | |
public ItemOverrideList getOverrides() { | |
return new ItemOverrideList(Collections.emptyList()) { | |
@Override | |
public IBakedModel handleItemState(IBakedModel m, ItemStack is, World w, EntityLivingBase e) { | |
if (!(is.getItem() instanceof ItemDummyGas)) return m; | |
ItemDummyGas itemGas = (ItemDummyGas)is.getItem(); | |
GasStack gs = itemGas.getGasStack(is); | |
if (gs == null) return m; | |
Gas g = gs.getGas(); | |
if (g == null) return m; | |
System.out.println("Gas name: " + g.getLocalizedName()); | |
System.out.println("Gas sprite: " + g.getSprite().toString()); | |
System.out.println("Gas tint: " + g.getTint()); | |
TextureAtlasSprite s = g.getSprite(); | |
// I've also tried this with a tint of g.getTint() | |
return new BakedModelDummyGas(ItemLayerModel.getQuadsForSprite(g.getTint(), s, BakedModelDispatcherDummyGas.this.format, Optional.empty())); | |
} | |
}; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package uk.co.mlugg.addedcells.mekanism.item.render; | |
import java.util.List; | |
import net.minecraft.block.state.IBlockState; | |
import net.minecraft.client.renderer.block.model.BakedQuad; | |
import net.minecraft.client.renderer.block.model.IBakedModel; | |
import net.minecraft.client.renderer.block.model.ItemOverrideList; | |
import net.minecraft.client.renderer.texture.TextureAtlasSprite; | |
import net.minecraft.util.EnumFacing; | |
public class BakedModelDummyGas implements IBakedModel { | |
private List<BakedQuad> quads; | |
public BakedModelDummyGas(List<BakedQuad> quads) { | |
this.quads = quads; | |
} | |
@Override | |
public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) { | |
return this.quads; | |
} | |
@Override | |
public boolean isAmbientOcclusion() { | |
return false; | |
} | |
@Override | |
public boolean isGui3d() { | |
return false; | |
} | |
@Override | |
public boolean isBuiltInRenderer() { | |
return false; | |
} | |
@Override | |
public TextureAtlasSprite getParticleTexture() { | |
return null; | |
} | |
@Override | |
public ItemOverrideList getOverrides() { | |
return null; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package uk.co.mlugg.addedcells.mekanism.item.render; | |
import java.util.function.Function; | |
import net.minecraft.client.renderer.block.model.IBakedModel; | |
import net.minecraft.client.renderer.texture.TextureAtlasSprite; | |
import net.minecraft.client.renderer.vertex.VertexFormat; | |
import net.minecraft.util.ResourceLocation; | |
import net.minecraftforge.client.model.IModel; | |
import net.minecraftforge.common.model.IModelState; | |
public class ModelDummyGas implements IModel { | |
@Override | |
public IBakedModel bake(IModelState state, VertexFormat format, | |
Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) { | |
return new BakedModelDispatcherDummyGas(format); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Console output from handleItemState: