Merge remote-tracking branch 'origin/master' into fabric-1.16

This commit is contained in:
Sebastian Hartte
2020-07-01 01:16:18 +02:00
14 changed files with 140 additions and 97 deletions
@@ -83,7 +83,7 @@ public class CableBusBlock extends AEBaseTileBlock<CableBusBlockEntity> implemen
public CableBusBlock() {
super(defaultProps(AEGlassMaterial.INSTANCE)
.nonOpaque()
.dropsNothing());
.dropsNothing().variableOpacity());
}
@Override
@@ -63,7 +63,7 @@ public class DriveBakedModel extends DelegateBakedModel {
DriveSlotsState slotsState = driveModelData.getSlotsState();
if (side == null && slotsState != null) {
if (slotsState != null) {
for (int row = 0; row < 5; row++) {
for (int col = 0; col < 2; col++) {
Matrix4f transform = new Matrix4f();
@@ -80,7 +80,7 @@ public class DriveBakedModel extends DelegateBakedModel {
// Add the drive chassis
Item cell = slotsState.getCell(slot);
BakedModel cellChassisModel = getCellChassisModel(cell);
addModel(state, rand, extraData, result, cellChassisModel, transform);
addModel(state, rand, extraData, result, side, cellChassisModel, transform);
}
}
}
@@ -112,9 +112,9 @@ public class DriveBakedModel extends DelegateBakedModel {
}
private static void addModel(@Nullable BlockState state, @Nonnull Random rand, @Nonnull IModelData extraData,
List<BakedQuad> result, BakedModel bakedCell, Matrix4f transform) {
List<BakedQuad> result, Direction side, IBakedModel bakedCell, Matrix4f transform) {
MatrixVertexTransformer transformer = new MatrixVertexTransformer(transform);
for (BakedQuad bakedQuad : bakedCell.getQuads(state, null, rand, extraData)) {
for (BakedQuad bakedQuad : bakedCell.getQuads(state, side, rand, extraData)) {
BakedQuadBuilder builder = new BakedQuadBuilder();
transformer.setParent(builder);
transformer.setVertexFormat(builder.getVertexFormat());
@@ -7,6 +7,9 @@ import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
import net.minecraft.client.render.block.entity.BlockEntityRenderer;
import net.minecraft.client.util.math.MatrixStack;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.renderer.RenderState;
@@ -14,7 +17,6 @@ import net.minecraft.client.util.math.Vector3f;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
import appeng.block.storage.DriveSlotState;
import appeng.client.render.FacingToRotation;
@@ -26,6 +28,14 @@ import appeng.tile.storage.DriveBlockEntity;
@Environment(EnvType.CLIENT)
public class DriveLedTileEntityRenderer extends BlockEntityRenderer<DriveBlockEntity> {
private static final RenderState.TransparencyState TRANSLUCENT_TRANSPARENCY = new RenderState.TransparencyState(
"translucent_transparency", () -> {
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
}, () -> {
RenderSystem.disableBlend();
});
private static final EnumMap<DriveSlotState, Vector3f> STATE_COLORS;
// Color used for the cell indicator for blinking during recent activity
@@ -80,11 +90,9 @@ public class DriveLedTileEntityRenderer extends BlockEntityRenderer<DriveBlockEn
FacingToRotation.get(drive.getForward(), drive.getUp()).push(ms);
ms.translate(-0.5, -0.5, -0.5);
RenderState.TransparencyState TRANSLUCENT_TRANSPARENCY = ObfuscationReflectionHelper
.getPrivateValue(RenderState.class, null, "field_228515_g_");
RenderLayer rt = RenderLayer.makeType("ae_drive_leds", DefaultVertexFormats.POSITION_COLOR, 7, 32565, false, true,
RenderLayer.State.getBuilder().transparency(TRANSLUCENT_TRANSPARENCY).build(false));
VertexConsumer buffer = buffers.getBuffer(STATE);
RenderType rt = RenderType.makeType("ae_drive_leds", DefaultVertexFormats.POSITION_COLOR, 7, 32565, false, true,
RenderType.State.getBuilder().transparency(TRANSLUCENT_TRANSPARENCY).build(false));
IVertexBuilder buffer = buffers.getBuffer(STATE);
for (int row = 0; row < 5; row++) {
for (int col = 0; col < 2; col++) {