Skip to content

Commit dd22e0d

Browse files
committed
Close #4
1 parent 503ccb9 commit dd22e0d

6 files changed

Lines changed: 75 additions & 125 deletions

File tree

src/main/java/com/elytradev/architecture/client/render/model/VertexBakedModel.java

Lines changed: 48 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030
import com.elytradev.architecture.client.render.target.RenderTargetBaked;
3131
import com.elytradev.architecture.common.block.BlockArchitecture;
3232
import com.elytradev.architecture.common.helpers.Trans3;
33-
import com.elytradev.architecture.common.helpers.Utils;
3433
import com.google.common.collect.Lists;
3534
import net.minecraft.block.Block;
3635
import net.minecraft.block.state.IBlockState;
37-
import net.minecraft.client.renderer.GlStateManager;
38-
import net.minecraft.client.renderer.block.model.*;
36+
import net.minecraft.client.renderer.block.model.BakedQuad;
37+
import net.minecraft.client.renderer.block.model.IBakedModel;
38+
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
39+
import net.minecraft.client.renderer.block.model.ItemOverrideList;
3940
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
4041
import net.minecraft.util.EnumFacing;
4142
import net.minecraft.util.math.BlockPos;
@@ -47,10 +48,45 @@
4748
import java.util.Collections;
4849
import java.util.List;
4950

50-
import static org.lwjgl.opengl.GL11.GL_SMOOTH;
51-
5251
public class VertexBakedModel implements IBakedModel {
5352

53+
private IBakedModel emptyModel = new IBakedModel() {
54+
@Override
55+
public List<BakedQuad> getQuads(@Nullable IBlockState state, @Nullable EnumFacing side, long rand) {
56+
return Lists.newArrayList();
57+
}
58+
59+
@Override
60+
public boolean isAmbientOcclusion() {
61+
return false;
62+
}
63+
64+
@Override
65+
public boolean isGui3d() {
66+
return false;
67+
}
68+
69+
@Override
70+
public boolean isBuiltInRenderer() {
71+
return false;
72+
}
73+
74+
@Override
75+
public TextureAtlasSprite getParticleTexture() {
76+
return null;
77+
}
78+
79+
@Override
80+
public ItemCameraTransforms getItemCameraTransforms() {
81+
return ItemCameraTransforms.DEFAULT;
82+
}
83+
84+
@Override
85+
public ItemOverrideList getOverrides() {
86+
return ItemOverrideList.NONE;
87+
}
88+
};
89+
5490
@Override
5591
public List<BakedQuad> getQuads(@Nullable IBlockState state, @Nullable EnumFacing side, long rand) {
5692
if (state instanceof IExtendedBlockState) {
@@ -62,59 +98,21 @@ public List<BakedQuad> getQuads(@Nullable IBlockState state, @Nullable EnumFacin
6298
}
6399

64100
private IBakedModel getModel(IBlockAccess world, BlockPos pos, IBlockState state) {
65-
IBakedModel out = null;
101+
IBakedModel out = emptyModel;
66102
RenderingManager renderingManager = ClientProxy.RENDERING_MANAGER;
67103
ICustomRenderer rend = renderingManager.getCustomRenderer(world, pos, state);
68104
if (rend != null) {
69105
Trans3 t = Trans3.blockCenter;
70106
Block block = state.getBlock();
71-
IBakedModel primary, secondary;
72-
primary = secondary = null;
73-
// Render Primary.
107+
// Render model and export bakedmodel if present.
74108
if (block.canRenderInLayer(state, MinecraftForgeClient.getRenderLayer())) {
75-
TextureAtlasSprite sprite = Utils.getSpriteForPos(world, pos, true);
76-
if (sprite != null) {
77-
RenderTargetBaked target = new RenderTargetBaked(pos, sprite);
78-
79-
rend.renderBlock(world, pos, state, target, MinecraftForgeClient.getRenderLayer(), t, true, false);
80-
primary = target.getBakedModel();
81-
}
82-
}
83-
// Render Secondary.
84-
if (block.canRenderInLayer(state, MinecraftForgeClient.getRenderLayer())) {
85-
TextureAtlasSprite sprite = Utils.getSpriteForPos(world, pos, false);
86-
if (sprite != null) {
87-
RenderTargetBaked target = new RenderTargetBaked(pos, sprite);
88-
89-
rend.renderBlock(world, pos, state, target, MinecraftForgeClient.getRenderLayer(), t, false, true);
90-
secondary = target.getBakedModel();
109+
rend = ClientProxy.RENDERING_MANAGER.getCustomRendererForState(state);
110+
if (rend != null) {
111+
RenderTargetBaked target = new RenderTargetBaked();
112+
rend.renderBlock(world, pos, state, target, MinecraftForgeClient.getRenderLayer(), t);
113+
out = target.getBakedModel();
91114
}
92115
}
93-
94-
boolean added = false;
95-
MultipartBakedModel.Builder builder = new MultipartBakedModel.Builder();
96-
if (primary != null) {
97-
builder.putModel((o) -> true, primary);
98-
added = true;
99-
}
100-
if (secondary != null) {
101-
builder.putModel((o) -> true, secondary);
102-
added = true;
103-
}
104-
if (added) {
105-
out = builder.makeMultipartModel();
106-
} else {
107-
// Backup in case the multipart fails, fallback to state based render in the current layer.
108-
if (block.canRenderInLayer(state, MinecraftForgeClient.getRenderLayer())) {
109-
rend = ClientProxy.RENDERING_MANAGER.getCustomRendererForState(state);
110-
if (rend != null) {
111-
RenderTargetBaked target = new RenderTargetBaked();
112-
rend.renderBlock(world, pos, state, target, MinecraftForgeClient.getRenderLayer(), t);
113-
return target.getBakedModel();
114-
}
115-
}
116-
return emptyModel;
117-
}
118116
}
119117

120118
return out;
@@ -151,41 +149,4 @@ public ItemCameraTransforms getItemCameraTransforms() {
151149
public ItemOverrideList getOverrides() {
152150
return ItemOverrideList.NONE;
153151
}
154-
155-
private IBakedModel emptyModel = new IBakedModel() {
156-
@Override
157-
public List<BakedQuad> getQuads(@Nullable IBlockState state, @Nullable EnumFacing side, long rand) {
158-
return Lists.newArrayList();
159-
}
160-
161-
@Override
162-
public boolean isAmbientOcclusion() {
163-
return false;
164-
}
165-
166-
@Override
167-
public boolean isGui3d() {
168-
return false;
169-
}
170-
171-
@Override
172-
public boolean isBuiltInRenderer() {
173-
return false;
174-
}
175-
176-
@Override
177-
public TextureAtlasSprite getParticleTexture() {
178-
return null;
179-
}
180-
181-
@Override
182-
public ItemCameraTransforms getItemCameraTransforms() {
183-
return ItemCameraTransforms.DEFAULT;
184-
}
185-
186-
@Override
187-
public ItemOverrideList getOverrides() {
188-
return ItemOverrideList.NONE;
189-
}
190-
};
191152
}

src/main/java/com/elytradev/architecture/common/ArchitectureMod.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,8 @@
2525
package com.elytradev.architecture.common;
2626

2727
import com.elytradev.architecture.common.proxy.CommonProxy;
28-
import com.elytradev.probe.api.IProbeDataProvider;
2928
import net.minecraft.launchwrapper.Launch;
3029
import net.minecraftforge.common.MinecraftForge;
31-
import net.minecraftforge.common.capabilities.Capability;
32-
import net.minecraftforge.common.capabilities.CapabilityInject;
3330
import net.minecraftforge.fml.common.Mod;
3431
import net.minecraftforge.fml.common.SidedProxy;
3532
import net.minecraftforge.fml.common.event.FMLInitializationEvent;

src/main/java/com/elytradev/architecture/common/proxy/CommonProxy.java

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,35 +27,13 @@
2727
import com.elytradev.architecture.common.ArchitectureGuiHandler;
2828
import com.elytradev.architecture.common.ArchitectureMod;
2929
import com.elytradev.architecture.common.network.ArchitectureNetworking;
30-
import com.elytradev.architecture.common.tile.TileShape;
31-
import com.elytradev.probe.api.IProbeData;
32-
import com.elytradev.probe.api.IProbeDataProvider;
33-
import com.elytradev.probe.api.impl.ProbeData;
34-
import com.google.common.collect.ImmutableList;
35-
import net.minecraft.block.BlockAir;
36-
import net.minecraft.block.state.IBlockState;
37-
import net.minecraft.item.Item;
38-
import net.minecraft.item.ItemStack;
39-
import net.minecraft.tileentity.TileEntity;
40-
import net.minecraft.util.EnumFacing;
41-
import net.minecraft.util.ResourceLocation;
42-
import net.minecraft.util.text.TextComponentTranslation;
4330
import net.minecraftforge.common.MinecraftForge;
44-
import net.minecraftforge.common.capabilities.Capability;
45-
import net.minecraftforge.common.capabilities.CapabilityInject;
46-
import net.minecraftforge.common.capabilities.ICapabilityProvider;
47-
import net.minecraftforge.event.AttachCapabilitiesEvent;
4831
import net.minecraftforge.fml.common.LoaderState;
4932
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
5033
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
5134
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
52-
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
5335
import net.minecraftforge.fml.common.network.NetworkRegistry;
5436

55-
import javax.annotation.Nonnull;
56-
import javax.annotation.Nullable;
57-
import java.util.List;
58-
5937
public class CommonProxy {
6038

6139
public void preInit(FMLPreInitializationEvent e) {

src/main/java/com/elytradev/architecture/common/tile/TileArchitecture.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ public abstract class TileArchitecture extends TileEntity {
5757
protected static Field changedSectionFilter = getFieldDef(
5858
classForName("net.minecraft.server.management.PlayerChunkMapEntry"),
5959
"changedSectionFilter", "field_187288_h");
60-
private byte side;
61-
private byte turn;
6260
public Ticket chunkTicket;
6361
protected boolean updateChunk;
62+
private byte side;
63+
private byte turn;
6464

6565
public static ItemStack blockStackWithTileEntity(Block block, int size, TileArchitecture te) {
6666
return blockStackWithTileEntity(block, size, 0, te);
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
{
2-
"variants": {
3-
"normal": { "model": "iron_block" }
4-
}
2+
"variants": {
3+
"normal": {
4+
"model": "iron_block"
5+
}
6+
}
57
}
Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
{
2-
"parent": "architecturecraft:block/sawbench",
3-
"display": {
4-
"thirdperson": {
5-
"rotation": [ 10, -45, 170 ],
6-
"translation": [ 0, 1.5, -2.75 ],
7-
"scale": [ 0.375, 0.375, 0.375 ]
8-
}
9-
}
2+
"parent": "architecturecraft:block/sawbench",
3+
"display": {
4+
"thirdperson": {
5+
"rotation": [
6+
10,
7+
-45,
8+
170
9+
],
10+
"translation": [
11+
0,
12+
1.5,
13+
-2.75
14+
],
15+
"scale": [
16+
0.375,
17+
0.375,
18+
0.375
19+
]
20+
}
21+
}
1022
}

0 commit comments

Comments
 (0)