Fixed Sign Mixin errors
This commit is contained in:
parent
95ea99e44d
commit
bfebba6791
4 changed files with 33 additions and 28 deletions
|
@ -0,0 +1,12 @@
|
||||||
|
package org.betterx.bclib.complexmaterials;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.WoodType;
|
||||||
|
|
||||||
|
public class BCLWoodType extends WoodType {
|
||||||
|
private String modID;
|
||||||
|
|
||||||
|
protected BCLWoodType(String modID, String string) {
|
||||||
|
super(string);
|
||||||
|
this.modID = modID;
|
||||||
|
}
|
||||||
|
}
|
|
@ -19,6 +19,7 @@ import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.state.properties.WoodType;
|
||||||
import net.minecraft.world.level.material.MaterialColor;
|
import net.minecraft.world.level.material.MaterialColor;
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||||
|
@ -53,6 +54,8 @@ public class WoodenComplexMaterial extends ComplexMaterial {
|
||||||
public final MaterialColor planksColor;
|
public final MaterialColor planksColor;
|
||||||
public final MaterialColor woodColor;
|
public final MaterialColor woodColor;
|
||||||
|
|
||||||
|
public final WoodType woodType;
|
||||||
|
|
||||||
public WoodenComplexMaterial(
|
public WoodenComplexMaterial(
|
||||||
String modID,
|
String modID,
|
||||||
String baseName,
|
String baseName,
|
||||||
|
@ -63,6 +66,7 @@ public class WoodenComplexMaterial extends ComplexMaterial {
|
||||||
super(modID, baseName, receipGroupPrefix);
|
super(modID, baseName, receipGroupPrefix);
|
||||||
this.planksColor = planksColor;
|
this.planksColor = planksColor;
|
||||||
this.woodColor = woodColor;
|
this.woodColor = woodColor;
|
||||||
|
this.woodType = WoodType.register(new BCLWoodType(modID, baseName));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -5,7 +5,7 @@ import org.betterx.bclib.client.render.BaseSignBlockEntityRenderer;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import net.minecraft.client.gui.screens.Screen;
|
import net.minecraft.client.gui.screens.inventory.AbstractSignEditScreen;
|
||||||
import net.minecraft.client.gui.screens.inventory.SignEditScreen;
|
import net.minecraft.client.gui.screens.inventory.SignEditScreen;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.blockentity.SignRenderer;
|
import net.minecraft.client.renderer.blockentity.SignRenderer;
|
||||||
|
@ -14,22 +14,17 @@ import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.entity.SignBlockEntity;
|
import net.minecraft.world.level.block.entity.SignBlockEntity;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
import org.spongepowered.asm.mixin.Final;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.Unique;
|
import org.spongepowered.asm.mixin.Unique;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.At.Shift;
|
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
|
||||||
|
|
||||||
@Mixin(SignEditScreen.class)
|
@Mixin(SignEditScreen.class)
|
||||||
public abstract class SignEditScreenMixin extends Screen {
|
public abstract class SignEditScreenMixin extends AbstractSignEditScreen {
|
||||||
@Shadow
|
|
||||||
@Final
|
|
||||||
private SignBlockEntity sign;
|
|
||||||
@Shadow
|
@Shadow
|
||||||
private SignRenderer.SignModel signModel;
|
private SignRenderer.SignModel signModel;
|
||||||
@Unique
|
@Unique
|
||||||
|
@ -37,27 +32,21 @@ public abstract class SignEditScreenMixin extends Screen {
|
||||||
@Unique
|
@Unique
|
||||||
private boolean bclib_isSign;
|
private boolean bclib_isSign;
|
||||||
|
|
||||||
protected SignEditScreenMixin(Component component) {
|
public SignEditScreenMixin(SignBlockEntity signBlockEntity, boolean bl) {
|
||||||
super(component);
|
super(signBlockEntity, bl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(method = "render(Lcom/mojang/blaze3d/vertex/PoseStack;IIF)V", locals = LocalCapture.CAPTURE_FAILSOFT, at = @At(ordinal = 1,
|
public SignEditScreenMixin(
|
||||||
value = "INVOKE",
|
SignBlockEntity signBlockEntity,
|
||||||
target = "Lcom/mojang/blaze3d/vertex/PoseStack;pushPose()V",
|
|
||||||
shift = Shift.BEFORE
|
|
||||||
))
|
|
||||||
private void bclib_checkOffset(
|
|
||||||
PoseStack poseStack,
|
|
||||||
int i,
|
|
||||||
int j,
|
|
||||||
float f,
|
|
||||||
CallbackInfo ci,
|
|
||||||
float g,
|
|
||||||
BlockState blockState,
|
|
||||||
boolean bl,
|
boolean bl,
|
||||||
boolean bl2,
|
Component component
|
||||||
float h
|
|
||||||
) {
|
) {
|
||||||
|
super(signBlockEntity, bl, component);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Inject(method = "offsetSign", at = @At("TAIL"))
|
||||||
|
private void bclib_offsetSign(PoseStack poseStack, BlockState blockState, CallbackInfo ci) {
|
||||||
bclib_isSign = blockState.getBlock() instanceof BaseSignBlock;
|
bclib_isSign = blockState.getBlock() instanceof BaseSignBlock;
|
||||||
if (bclib_isSign) {
|
if (bclib_isSign) {
|
||||||
bclib_renderStick = blockState.getValue(BaseSignBlock.FLOOR);
|
bclib_renderStick = blockState.getValue(BaseSignBlock.FLOOR);
|
||||||
|
@ -67,8 +56,8 @@ public abstract class SignEditScreenMixin extends Screen {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ModifyArg(method = "render(Lcom/mojang/blaze3d/vertex/PoseStack;IIF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V"), index = 1)
|
@ModifyArg(method = "renderSignBackground", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/model/geom/ModelPart;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;II)V"), index = 1)
|
||||||
private VertexConsumer bclib_signRender(VertexConsumer consumer) {
|
private VertexConsumer bclib_renderSignBackground(VertexConsumer consumer) {
|
||||||
if (bclib_isSign) {
|
if (bclib_isSign) {
|
||||||
signModel.stick.visible = bclib_renderStick;
|
signModel.stick.visible = bclib_renderStick;
|
||||||
Block block = sign.getBlockState().getBlock();
|
Block block = sign.getBlockState().getBlock();
|
||||||
|
|
|
@ -22,6 +22,6 @@ accessible method net/minecraft/world/entity/ai/village/poi/PoiTypes register (L
|
||||||
accessible method net/minecraft/world/level/levelgen/SurfaceRules$SequenceRuleSource <init> (Ljava/util/List;)V
|
accessible method net/minecraft/world/level/levelgen/SurfaceRules$SequenceRuleSource <init> (Ljava/util/List;)V
|
||||||
accessible method net/minecraft/core/Registry registerSimple (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/core/Registry$RegistryBootstrap;)Lnet/minecraft/core/Registry;
|
accessible method net/minecraft/core/Registry registerSimple (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/core/Registry$RegistryBootstrap;)Lnet/minecraft/core/Registry;
|
||||||
accessible method net/minecraft/world/entity/SpawnPlacements register (Lnet/minecraft/world/entity/EntityType;Lnet/minecraft/world/entity/SpawnPlacements$Type;Lnet/minecraft/world/level/levelgen/Heightmap$Types;Lnet/minecraft/world/entity/SpawnPlacements$SpawnPredicate;)V
|
accessible method net/minecraft/world/entity/SpawnPlacements register (Lnet/minecraft/world/entity/EntityType;Lnet/minecraft/world/entity/SpawnPlacements$Type;Lnet/minecraft/world/level/levelgen/Heightmap$Types;Lnet/minecraft/world/entity/SpawnPlacements$SpawnPredicate;)V
|
||||||
|
accessible method net/minecraft/world/level/block/state/properties/WoodType register (Lnet/minecraft/world/level/block/state/properties/WoodType;)Lnet/minecraft/world/level/block/state/properties/WoodType;
|
||||||
#Fields
|
#Fields
|
||||||
accessible field net/minecraft/world/entity/ai/village/poi/PoiTypes TYPE_BY_STATE Ljava/util/Map;
|
accessible field net/minecraft/world/entity/ai/village/poi/PoiTypes TYPE_BY_STATE Ljava/util/Map;
|
Loading…
Add table
Add a link
Reference in a new issue