More fixes...

This commit is contained in:
raoulvdberge
2020-01-11 13:41:02 +01:00
parent e7ab1b12ec
commit 3a1472faca
6 changed files with 37 additions and 75 deletions

View File

@@ -88,7 +88,7 @@ processResources {
} }
dependencies { dependencies {
minecraft 'net.minecraftforge:forge:1.15.1-30.0.18' minecraft 'net.minecraftforge:forge:1.15.1-30.0.36'
//compileOnly fg.deobf("mezz.jei:jei-1.14.4:6.0.0.11:api") //compileOnly fg.deobf("mezz.jei:jei-1.14.4:6.0.0.11:api")
//compileOnly 'mouse-tweaks:MouseTweaks:2.12:mc1.14.4' //compileOnly 'mouse-tweaks:MouseTweaks:2.12:mc1.14.4'
//runtimeOnly fg.deobf('crafting-tweaks:CraftingTweaks_1.14.4:10.1.3') //runtimeOnly fg.deobf('crafting-tweaks:CraftingTweaks_1.14.4:10.1.3')

View File

@@ -7,7 +7,6 @@ import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.DiskState; import com.raoulvdberge.refinedstorage.apiimpl.network.node.DiskState;
import com.raoulvdberge.refinedstorage.tile.DiskDriveTile; import com.raoulvdberge.refinedstorage.tile.DiskDriveTile;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.client.renderer.TransformationMatrix;
import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.Vector3f;
import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.BakedQuad;
import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IBakedModel;
@@ -76,7 +75,7 @@ public class DiskDriveBakedModel extends DelegateBakedModel {
for (int i = 0; i < 8; ++i) { for (int i = 0; i < 8; ++i) {
if (key.diskState[i] != DiskState.NONE) { if (key.diskState[i] != DiskState.NONE) {
// quads.addAll(disksByFacing.get(facing).get(key.diskState[i]).get(i).getQuads(key.state, key.side, key.random)); quads.addAll(disksByFacing.get(facing).get(key.diskState[i]).get(i).getQuads(key.state, key.side, key.random));
} }
} }
@@ -84,8 +83,6 @@ public class DiskDriveBakedModel extends DelegateBakedModel {
} }
}); });
private Runnable init;
public DiskDriveBakedModel(IBakedModel base, public DiskDriveBakedModel(IBakedModel base,
IBakedModel disk, IBakedModel disk,
IBakedModel diskNearCapacity, IBakedModel diskNearCapacity,
@@ -93,14 +90,12 @@ public class DiskDriveBakedModel extends DelegateBakedModel {
IBakedModel diskDisconnected) { IBakedModel diskDisconnected) {
super(base); super(base);
this.init = () -> {
for (Direction facing : Direction.values()) { for (Direction facing : Direction.values()) {
if (facing.getHorizontalIndex() == -1) { if (facing.getHorizontalIndex() == -1) {
continue; continue;
} }
baseByFacing.put(facing, new TRSRBakedModel(base, facing)); baseByFacing.put(facing, new TRSRBakedModel(base, facing, null));
disksByFacing.put(facing, new HashMap<>()); disksByFacing.put(facing, new HashMap<>());
addDiskModels(disk, DiskState.NORMAL, facing); addDiskModels(disk, DiskState.NORMAL, facing);
@@ -108,9 +103,6 @@ public class DiskDriveBakedModel extends DelegateBakedModel {
addDiskModels(diskFull, DiskState.FULL, facing); addDiskModels(diskFull, DiskState.FULL, facing);
addDiskModels(diskDisconnected, DiskState.DISCONNECTED, facing); addDiskModels(diskDisconnected, DiskState.DISCONNECTED, facing);
} }
};
init.run();
} }
private void addDiskModels(IBakedModel disk, DiskState type, Direction facing) { private void addDiskModels(IBakedModel disk, DiskState type, Direction facing) {
@@ -118,9 +110,7 @@ public class DiskDriveBakedModel extends DelegateBakedModel {
for (int y = 0; y < 4; ++y) { for (int y = 0; y < 4; ++y) {
for (int x = 0; x < 2; ++x) { for (int x = 0; x < 2; ++x) {
/*TRSRBakedModel model = new TRSRBakedModel(disk, facing); Vector3f trans = new Vector3f();
Vector3f trans = model.transformation.getTranslation();
if (facing == Direction.NORTH || facing == Direction.SOUTH) { if (facing == Direction.NORTH || facing == Direction.SOUTH) {
trans.add(((2F / 16F) + ((float) x * 7F) / 16F) * (facing == Direction.NORTH ? -1 : 1), 0, 0); // Add to X trans.add(((2F / 16F) + ((float) x * 7F) / 16F) * (facing == Direction.NORTH ? -1 : 1), 0, 0); // Add to X
@@ -130,14 +120,7 @@ public class DiskDriveBakedModel extends DelegateBakedModel {
trans.add(0, -((2F / 16F) + ((float) y * 3F) / 16F), 0); // Remove from Y trans.add(0, -((2F / 16F) + ((float) y * 3F) / 16F), 0); // Remove from Y
model.transformation = new TransformationMatrix( disksByFacing.get(facing).get(type).add(new TRSRBakedModel(disk, facing, trans));
trans,
model.transformation.getRightRot(),
model.transformation.getScale(),
model.transformation.func_227989_d_()
);*/
disksByFacing.get(facing).get(type).add(disk);
} }
} }
} }
@@ -152,9 +135,6 @@ public class DiskDriveBakedModel extends DelegateBakedModel {
CacheKey key = new CacheKey(state, side, diskState, rand); CacheKey key = new CacheKey(state, side, diskState, rand);
init.run();
cache.refresh(key);
return cache.getUnchecked(key); return cache.getUnchecked(key);
} }
} }

View File

@@ -8,14 +8,12 @@ import net.minecraft.block.BlockState;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.BakedQuad;
import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.vertex.VertexFormat;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.data.EmptyModelData; import net.minecraftforge.client.model.data.EmptyModelData;
import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.IModelData;
import net.minecraftforge.client.model.pipeline.UnpackedBakedQuad; import net.minecraftforge.client.model.pipeline.BakedQuadBuilder;
import net.minecraftforge.client.model.pipeline.VertexLighterFlat; import net.minecraftforge.client.model.pipeline.VertexLighterFlat;
import net.minecraftforge.common.model.TransformationHelper;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.*; import java.util.*;
@@ -75,9 +73,7 @@ public class FullbrightBakedModel extends DelegateBakedModel {
return quad; return quad;
} }
VertexFormat newFormat = RenderUtils.getFormatWithLightMap(quad.getFormat()); BakedQuadBuilder builder = new BakedQuadBuilder(quad.getSprite());
UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(newFormat);
VertexLighterFlat trans = new VertexLighterFlat(Minecraft.getInstance().getBlockColors()) { VertexLighterFlat trans = new VertexLighterFlat(Minecraft.getInstance().getBlockColors()) {
@Override @Override
@@ -94,13 +90,12 @@ public class FullbrightBakedModel extends DelegateBakedModel {
trans.setParent(builder); trans.setParent(builder);
// TODO quad.pipe(trans);
builder.setQuadTint(quad.getTintIndex());
builder.setQuadOrientation(quad.getFace()); builder.setQuadOrientation(quad.getFace());
builder.setTexture(quad.getSprite()); builder.setTexture(quad.getSprite());
builder.setApplyDiffuseLighting(false); builder.setApplyDiffuseLighting(false);
quad.pipe(trans);
return builder.build(); return builder.build();
} }

View File

@@ -10,18 +10,15 @@ import net.minecraft.client.renderer.model.ItemCameraTransforms;
import net.minecraft.client.renderer.model.ItemOverrideList; import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraftforge.client.model.pipeline.BakedQuadBuilder;
import net.minecraftforge.client.model.pipeline.TRSRTransformer; import net.minecraftforge.client.model.pipeline.TRSRTransformer;
import net.minecraftforge.client.model.pipeline.UnpackedBakedQuad;
import net.minecraftforge.common.model.TransformationHelper; import net.minecraftforge.common.model.TransformationHelper;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
/**
* @link https://github.com/SlimeKnights/Mantle/blob/1.14/src/main/java/slimeknights/mantle/client/model/TRSRBakedModel.java
*/
// for those wondering TRSR stands for Translation Rotation Scale Rotation
public class TRSRBakedModel implements IBakedModel { public class TRSRBakedModel implements IBakedModel {
protected final IBakedModel original; protected final IBakedModel original;
protected TransformationMatrix transformation; protected TransformationMatrix transformation;
@@ -35,10 +32,7 @@ public class TRSRBakedModel implements IBakedModel {
} }
public TRSRBakedModel(IBakedModel original, float x, float y, float z, float rotX, float rotY, float rotZ, float scaleX, float scaleY, float scaleZ) { public TRSRBakedModel(IBakedModel original, float x, float y, float z, float rotX, float rotY, float rotZ, float scaleX, float scaleY, float scaleZ) {
this(original, new TransformationMatrix(new Vector3f(x, y, z), this(original, new TransformationMatrix(new Vector3f(x, y, z), null, new Vector3f(scaleX, scaleY, scaleZ), TransformationHelper.quatFromXYZ(new Vector3f(rotX, rotY, rotZ), true)));
null,
new Vector3f(scaleX, scaleY, scaleZ),
TransformationHelper.quatFromXYZ(new Vector3f(rotX, rotY, rotZ), false)));
} }
public TRSRBakedModel(IBakedModel original, TransformationMatrix transform) { public TRSRBakedModel(IBakedModel original, TransformationMatrix transform) {
@@ -46,40 +40,32 @@ public class TRSRBakedModel implements IBakedModel {
this.transformation = transform; this.transformation = transform;
} }
/**
* Rotates around the Y axis and adjusts culling appropriately. South is default.
*/
public TRSRBakedModel(IBakedModel original, Direction facing) { public TRSRBakedModel(IBakedModel original, Direction facing) {
this(original,facing,null);
}
public TRSRBakedModel(IBakedModel original, Direction facing, @Nullable Vector3f translation) {
this.original = original; this.original = original;
double r = Math.PI * (360 - facing.getOpposite().getHorizontalIndex() * 90) / 180d; double r = Math.PI * (360 - facing.getOpposite().getHorizontalIndex() * 90) / 180d;
this.transformation = new TransformationMatrix(null, TransformationHelper.quatFromXYZ(new Vector3f(0,(float)r,0), false), null, null).blockCenterToCorner(); this.transformation = new TransformationMatrix(translation, TransformationHelper.quatFromXYZ(new Vector3f(0, (float) r, 0), false), null, null);
//new TransformationMatrix(null, TransformationHelper.quatFromXYZ(new Vector3f(0, 180, 0), true), null, null);
} }
@Nonnull @Nonnull
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public List<BakedQuad> getQuads(BlockState state, Direction side, Random rand) { public List<BakedQuad> getQuads(BlockState state, Direction side, Random rand) {
// transform quads obtained from parent
ImmutableList.Builder<BakedQuad> quads = ImmutableList.builder(); ImmutableList.Builder<BakedQuad> quads = ImmutableList.builder();
if (!original.isBuiltInRenderer()) {
// adjust side to facing-rotation
/*if (side != null && side.getHorizontalIndex() > -1) {
side = Direction.byHorizontalIndex((side.getHorizontalIndex() + faceOffset) % 4);
}*/
for (BakedQuad quad : original.getQuads(state, side, rand)) { for (BakedQuad quad : original.getQuads(state, side, rand)) {
UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(quad.getFormat()); BakedQuadBuilder builder = new BakedQuadBuilder(quad.getSprite());
TRSRTransformer transformer = new TRSRTransformer(builder, transformation); TRSRTransformer transformer = new TRSRTransformer(builder, transformation.blockCenterToCorner());
quad.pipe(transformer); quad.pipe(transformer);
quads.add(builder.build()); quads.add(builder.build());
} }
}
return quads.build(); return quads.build();
} }

View File

@@ -73,14 +73,15 @@ public class ClientSetup {
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "constructor"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/constructor/cutouts/connected"))); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "constructor"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/constructor/cutouts/connected")));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "destructor"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/destructor/cutouts/connected"))); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "destructor"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/destructor/cutouts/connected")));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_drive"), (base, registry) -> bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_drive"), (base, registry) -> new FullbrightBakedModel(
new DiskDriveBakedModel( new DiskDriveBakedModel(
base, base,
registry.get(new ResourceLocation(RS.ID + ":block/disks/disk")), registry.get(new ResourceLocation(RS.ID + ":block/disks/disk")),
registry.get(new ResourceLocation(RS.ID + ":block/disks/disk_near_capacity")), registry.get(new ResourceLocation(RS.ID + ":block/disks/disk_near_capacity")),
registry.get(new ResourceLocation(RS.ID + ":block/disks/disk_full")), registry.get(new ResourceLocation(RS.ID + ":block/disks/disk_full")),
registry.get(new ResourceLocation(RS.ID + ":block/disks/disk_disconnected")) registry.get(new ResourceLocation(RS.ID + ":block/disks/disk_disconnected"))
)); )
).disableCache());
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_manipulator"), (base, registry) -> new FullbrightBakedModel( bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_manipulator"), (base, registry) -> new FullbrightBakedModel(
new DiskManipulatorBakedModel( new DiskManipulatorBakedModel(

View File

@@ -244,8 +244,8 @@ public final class RenderUtils {
} }
public static boolean isLightMapDisabled() { public static boolean isLightMapDisabled() {
// TODO return !ForgeConfig.CLIENT.forgeLightPipelineEnabled.get(); // return ForgeConfig.CLIENT.forgeLightPipelineEnabled.get();
return true; return false;
} }
public static VertexFormat getFormatWithLightMap(VertexFormat format) { public static VertexFormat getFormatWithLightMap(VertexFormat format) {