11package gregtech .client .model .modelfactories ;
22
3+ import gregtech .client .utils .RenderUtil ;
4+
35import net .minecraft .block .Block ;
46import net .minecraft .block .state .IBlockState ;
5- import net .minecraft .client .renderer .ItemMeshDefinition ;
6- import net .minecraft .client .renderer .block .model .BakedQuad ;
77import net .minecraft .client .renderer .block .model .IBakedModel ;
8- import net .minecraft .client .renderer .block .model .ItemCameraTransforms .TransformType ;
9- import net .minecraft .client .renderer .block .model .ItemOverrideList ;
108import net .minecraft .client .renderer .block .model .ModelResourceLocation ;
119import net .minecraft .client .renderer .block .statemap .StateMapperBase ;
12- import net .minecraft .client .renderer .texture .TextureAtlasSprite ;
1310import net .minecraft .client .renderer .vertex .DefaultVertexFormats ;
14- import net .minecraft .init .Items ;
15- import net .minecraft .item .Item ;
16- import net .minecraft .util .EnumFacing ;
17- import net .minecraft .util .Tuple ;
1811import net .minecraftforge .client .event .ModelBakeEvent ;
1912import net .minecraftforge .client .model .ModelFluid ;
2013import net .minecraftforge .client .model .ModelLoader ;
21- import net .minecraftforge .client .model .PerspectiveMapWrapper ;
2214import net .minecraftforge .fluids .BlockFluidBase ;
2315import net .minecraftforge .fluids .Fluid ;
2416import net .minecraftforge .fml .common .ObfuscationReflectionHelper ;
2517import net .minecraftforge .fml .common .eventhandler .SubscribeEvent ;
2618import net .minecraftforge .fml .relauncher .Side ;
2719import net .minecraftforge .fml .relauncher .SideOnly ;
2820
29- import codechicken .lib .render .item .CCRenderItem ;
30- import codechicken .lib .texture .TextureUtils ;
31- import codechicken .lib .util .TransformUtils ;
32- import org .apache .commons .lang3 .tuple .Pair ;
33- import org .jetbrains .annotations .NotNull ;
34- import org .jetbrains .annotations .Nullable ;
35-
3621import java .util .ArrayList ;
37- import java .util .Collections ;
3822import java .util .List ;
3923
40- import javax .vecmath .Matrix4f ;
41-
4224@ SideOnly (Side .CLIENT )
4325public class BakedModelHandler {
4426
@@ -49,25 +31,13 @@ protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
4931 return getSimpleModelLocation (state .getBlock ());
5032 }
5133 };
52- private static final ItemMeshDefinition SIMPLE_MESH_DEFINITION = (stack ) -> getSimpleModelLocation (
53- Block .getBlockFromItem (stack .getItem ()));
5434
5535 private static ModelResourceLocation getSimpleModelLocation (Block block ) {
5636 return new ModelResourceLocation (Block .REGISTRY .getNameForObject (block ), "" );
5737 }
5838
59- private final List <Tuple <Block , String >> builtInBlocks = new ArrayList <>();
6039 private final List <BlockFluidBase > fluidBlocks = new ArrayList <>();
6140
62- public void addBuiltInBlock (Block block , String particleTexture ) {
63- this .builtInBlocks .add (new Tuple <>(block , particleTexture ));
64- ModelLoader .setCustomStateMapper (block , SIMPLE_STATE_MAPPER );
65- Item itemFromBlock = Item .getItemFromBlock (block );
66- if (itemFromBlock != Items .AIR ) {
67- ModelLoader .setCustomMeshDefinition (itemFromBlock , SIMPLE_MESH_DEFINITION );
68- }
69- }
70-
7141 public void addFluidBlock (BlockFluidBase fluidBase ) {
7242 this .fluidBlocks .add (fluidBase );
7343 ModelLoader .setCustomStateMapper (fluidBase , SIMPLE_STATE_MAPPER );
@@ -79,63 +49,9 @@ public void onModelsBake(ModelBakeEvent event) {
7949 Fluid fluid = ObfuscationReflectionHelper .getPrivateValue (BlockFluidBase .class , fluidBlock , "definedFluid" );
8050 ModelFluid modelFluid = new ModelFluid (fluid );
8151 IBakedModel bakedModel = modelFluid .bake (modelFluid .getDefaultState (), DefaultVertexFormats .ITEM ,
82- TextureUtils ::getTexture );
52+ RenderUtil ::getTexture );
8353 ModelResourceLocation resourceLocation = getSimpleModelLocation (fluidBlock );
8454 event .getModelRegistry ().putObject (resourceLocation , bakedModel );
8555 }
86- for (Tuple <Block , String > tuple : builtInBlocks ) {
87- ModelResourceLocation resourceLocation = getSimpleModelLocation (tuple .getFirst ());
88- ModelBuiltInRenderer bakedModel = new ModelBuiltInRenderer (tuple .getSecond ());
89- event .getModelRegistry ().putObject (resourceLocation , bakedModel );
90- }
91- }
92-
93- private static class ModelBuiltInRenderer implements IBakedModel {
94-
95- private final String particleTexture ;
96-
97- public ModelBuiltInRenderer (String particleTexture ) {
98- this .particleTexture = particleTexture ;
99- }
100-
101- @ NotNull
102- @ Override
103- public List <BakedQuad > getQuads (@ Nullable IBlockState state , @ Nullable EnumFacing side , long rand ) {
104- return Collections .emptyList ();
105- }
106-
107- @ Override
108- public boolean isAmbientOcclusion () {
109- return true ;
110- }
111-
112- @ Override
113- public boolean isGui3d () {
114- return true ;
115- }
116-
117- @ Override
118- public boolean isBuiltInRenderer () {
119- return true ;
120- }
121-
122- @ NotNull
123- @ Override
124- public TextureAtlasSprite getParticleTexture () {
125- return TextureUtils .getBlockTexture (particleTexture );
126- }
127-
128- @ NotNull
129- @ Override
130- public ItemOverrideList getOverrides () {
131- return ItemOverrideList .NONE ;
132- }
133-
134- @ NotNull
135- @ Override
136- public Pair <? extends IBakedModel , Matrix4f > handlePerspective (@ NotNull TransformType cameraTransformType ) {
137- CCRenderItem .notifyTransform (cameraTransformType );
138- return PerspectiveMapWrapper .handlePerspective (this , TransformUtils .DEFAULT_BLOCK , cameraTransformType );
139- }
14056 }
14157}
0 commit comments