Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Facade render rework #3695

Merged
Prev Previous commit
Next Next commit
Cleanup and comments.
  • Loading branch information
covers1624 committed Aug 20, 2018
commit f82312bd8dc3e05634bd84b02cff37048fae3e32
8 changes: 5 additions & 3 deletions src/main/java/appeng/client/render/FacadeBakedItemModel.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package appeng.client.render;

import appeng.client.render.cablebus.FacadeModelBuilder;
import appeng.client.render.cablebus.FacadeBuilder;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.block.model.IBakedModel;
Expand All @@ -19,10 +19,12 @@
public class FacadeBakedItemModel extends DelegateBakedModel {

private final ItemStack textureStack;
private final FacadeBuilder facadeBuilder;

protected FacadeBakedItemModel(IBakedModel base, ItemStack textureStack) {
protected FacadeBakedItemModel(IBakedModel base, ItemStack textureStack, FacadeBuilder facadeBuilder) {
super(base);
this.textureStack = textureStack;
this.facadeBuilder = facadeBuilder;
}

@Override
Expand All @@ -31,7 +33,7 @@ public List<BakedQuad> getQuads(@Nullable IBlockState state, @Nullable EnumFacin
return Collections.emptyList();
}
List<BakedQuad> quads = new ArrayList<>();
quads.addAll(FacadeModelBuilder.buildFacadeItemQuads(textureStack, EnumFacing.NORTH));
quads.addAll(facadeBuilder.buildFacadeItemQuads(textureStack, EnumFacing.NORTH));
quads.addAll(getBaseModel().getQuads(state, side, rand));
return quads;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

import javax.annotation.Nullable;

import appeng.client.render.cablebus.FacadeBuilder;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.block.model.IBakedModel;
Expand All @@ -45,12 +46,14 @@
public class FacadeDispatcherBakedModel extends DelegateBakedModel
{
private final VertexFormat format;
private final FacadeBuilder facadeBuilder;

public FacadeDispatcherBakedModel( IBakedModel baseModel, VertexFormat format )
public FacadeDispatcherBakedModel(IBakedModel baseModel, VertexFormat format, FacadeBuilder facadeBuilder)
{
super( baseModel );
this.format = format;
}
this.facadeBuilder = facadeBuilder;
}

// This is never used. See the item override list below.
@Override
Expand Down Expand Up @@ -88,7 +91,7 @@ public IBakedModel handleItemState( IBakedModel originalModel, ItemStack stack,

ItemStack textureItem = itemFacade.getTextureItem( stack );

return new FacadeBakedItemModel(getBaseModel(), textureItem);
return new FacadeBakedItemModel(getBaseModel(), textureItem, facadeBuilder);
}
};
}
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/appeng/client/render/FacadeItemModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.Collections;
import java.util.function.Function;

import appeng.client.render.cablebus.FacadeBuilder;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.vertex.VertexFormat;
Expand Down Expand Up @@ -71,8 +72,9 @@ public Collection<ResourceLocation> getTextures()
public IBakedModel bake( IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter )
{
IBakedModel bakedBaseModel = this.getBaseModel().bake( state, format, bakedTextureGetter );
FacadeBuilder facadeBuilder = new FacadeBuilder();

return new FacadeDispatcherBakedModel( bakedBaseModel, format );
return new FacadeDispatcherBakedModel( bakedBaseModel, format, facadeBuilder);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,17 +57,19 @@ public class CableBusBakedModel implements IBakedModel
private static final Map<CableBusRenderState, List<BakedQuad>> CABLE_MODEL_CACHE = new HashMap<>();

private final CableBuilder cableBuilder;
private final FacadeBuilder facadeBuilder;

private final Map<ResourceLocation, IBakedModel> partModels;

private final TextureAtlasSprite particleTexture;

private final TextureMap textureMap = Minecraft.getMinecraft().getTextureMapBlocks();

CableBusBakedModel( CableBuilder cableBuilder, Map<ResourceLocation, IBakedModel> partModels, TextureAtlasSprite particleTexture )
CableBusBakedModel(CableBuilder cableBuilder, FacadeBuilder facadeBuilder, Map<ResourceLocation, IBakedModel> partModels, TextureAtlasSprite particleTexture)
{
this.cableBuilder = cableBuilder;
this.partModels = partModels;
this.facadeBuilder = facadeBuilder;
this.partModels = partModels;
this.particleTexture = particleTexture;
}

Expand Down Expand Up @@ -136,14 +138,7 @@ public List<BakedQuad> getQuads( @Nullable IBlockState state, @Nullable EnumFaci
}
}
}
FacadeModelBuilder.buildFacadeQuads(layer, renderState, rand, quads, partModels::get);
// this.facadeBuilder.addFacades(
// layer,
// renderState.getFacades(),
// renderState.getBoundingBoxes(),
// renderState.getAttachments().keySet(),
// rand,
// quads );
facadeBuilder.buildFacadeQuads(layer, renderState, rand, quads, partModels::get);

return quads;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,13 @@ public IBakedModel bake( IModelState state, VertexFormat format, Function<Resour
Map<ResourceLocation, IBakedModel> partModels = this.loadPartModels( state, format, bakedTextureGetter );

CableBuilder cableBuilder = new CableBuilder( format, bakedTextureGetter );
FacadeBuilder facadeBuilder = new FacadeBuilder();

// This should normally not be used, but we *have* to provide a particle texture or otherwise damage models will
// crash
TextureAtlasSprite particleTexture = cableBuilder.getCoreTexture( CableCoreType.GLASS, AEColor.TRANSPARENT );

return new CableBusBakedModel( cableBuilder, partModels, particleTexture );
return new CableBusBakedModel( cableBuilder, facadeBuilder, partModels, particleTexture );
}

private Map<ResourceLocation, IBakedModel> loadPartModels( IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package appeng.client.render.cablebus;


import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.EnumSet;
Expand Down Expand Up @@ -70,7 +71,8 @@ public class CableBusRenderState
// Contains the facade to use for each side that has a facade attached
private EnumMap<EnumFacing, FacadeRenderState> facades = new EnumMap<>( EnumFacing.class );

private IBlockAccess world;
//Used for Facades.
private WeakReference<IBlockAccess> world;
private BlockPos pos;

// Contains the bounding boxes of all parts on the cable bus to allow facades to cut out holes for the parts. This
Expand Down Expand Up @@ -157,12 +159,12 @@ public EnumMap<EnumFacing, FacadeRenderState> getFacades()

public IBlockAccess getWorld()
{
return world;
return world.get();
}

public void setWorld(IBlockAccess world)
{
this.world = world;
this.world = new WeakReference<>(world);
}

public BlockPos getPos()
Expand Down
Loading