mirror of
https://github.com/FabricMC/fabric.git
synced 2025-09-04 16:59:11 +00:00
25w34b (#4821)
* 25w34b compiles * Mixin fixes * Disable a pair of rendering related mixins * Bump version
This commit is contained in:
@@ -110,7 +110,7 @@ public class TestWorldBuilderImpl implements TestWorldBuilder {
|
||||
|
||||
private Path navigateCreateWorldScreen() {
|
||||
Path saveDirectory = context.computeOnClient(client -> {
|
||||
CreateWorldScreen.show(client, client.currentScreen);
|
||||
CreateWorldScreen.show(client, null);
|
||||
|
||||
if (!(client.currentScreen instanceof CreateWorldScreen createWorldScreen)) {
|
||||
throw new AssertionError("CreateWorldScreen.show did not set the current screen");
|
||||
|
@@ -106,7 +106,7 @@ public class AttachmentSync implements ModInitializer {
|
||||
ServerPlayerEntity player = handler.player;
|
||||
List<AttachmentChange> changes = new ArrayList<>();
|
||||
// sync world attachments
|
||||
((AttachmentTargetImpl) player.world()).fabric_computeInitialSyncChanges(player, changes::add);
|
||||
((AttachmentTargetImpl) player.getEntityWorld()).fabric_computeInitialSyncChanges(player, changes::add);
|
||||
// sync player's own persistent attachments that couldn't be synced earlier
|
||||
((AttachmentTargetImpl) player).fabric_computeInitialSyncChanges(player, changes::add);
|
||||
|
||||
|
@@ -44,7 +44,7 @@ abstract class EntityMixin implements AttachmentTargetImpl {
|
||||
private int id;
|
||||
|
||||
@Shadow
|
||||
public abstract World world();
|
||||
public abstract World getEntityWorld();
|
||||
|
||||
@Inject(
|
||||
at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;readCustomData(Lnet/minecraft/storage/ReadView;)V"),
|
||||
@@ -69,7 +69,7 @@ abstract class EntityMixin implements AttachmentTargetImpl {
|
||||
|
||||
@Override
|
||||
public void fabric_syncChange(AttachmentType<?> type, AttachmentSyncPayloadS2C payload) {
|
||||
if (!this.world().isClient()) {
|
||||
if (!this.getEntityWorld().isClient()) {
|
||||
AttachmentSyncPredicate predicate = ((AttachmentTypeImpl<?>) type).syncPredicate();
|
||||
|
||||
if ((Object) this instanceof ServerPlayerEntity self && predicate.test(this, self)) {
|
||||
@@ -88,11 +88,11 @@ abstract class EntityMixin implements AttachmentTargetImpl {
|
||||
|
||||
@Override
|
||||
public boolean fabric_shouldTryToSync() {
|
||||
return !this.world().isClient();
|
||||
return !this.getEntityWorld().isClient();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DynamicRegistryManager fabric_getDynamicRegistryManager() {
|
||||
return this.world().getRegistryManager();
|
||||
return this.getEntityWorld().getRegistryManager();
|
||||
}
|
||||
}
|
||||
|
@@ -145,7 +145,7 @@ public class SyncGametest implements FabricClientGameTest {
|
||||
LOGGER.info("Testing synced attachments (1/2)");
|
||||
context.runOnClient(client -> {
|
||||
ClientWorld world = Objects.requireNonNull(client.world);
|
||||
Entity villager = world.getEntity(state.villagerId);
|
||||
Entity villager = world.method_66347(state.villagerId);
|
||||
|
||||
assertHasSyncedWithAll(world.getBlockEntity(state.furnacePos));
|
||||
assertHasSyncedWithAll(villager);
|
||||
|
@@ -40,7 +40,7 @@ abstract class EntityMixin {
|
||||
Entity ret = original.call(instance, sourceWorld, targetWorld, teleportTarget);
|
||||
|
||||
if (ret != null) {
|
||||
ServerEntityWorldChangeEvents.AFTER_ENTITY_CHANGE_WORLD.invoker().afterChangeWorld((Entity) (Object) this, ret, (ServerWorld) this.world, (ServerWorld) ret.world());
|
||||
ServerEntityWorldChangeEvents.AFTER_ENTITY_CHANGE_WORLD.invoker().afterChangeWorld((Entity) (Object) this, ret, (ServerWorld) this.world, (ServerWorld) ret.getEntityWorld());
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@@ -109,7 +109,7 @@ abstract class LivingEntityMixin {
|
||||
@Dynamic("method_18405: Synthetic lambda body for Optional.map in isSleepingInBed")
|
||||
@Inject(method = "method_18405", at = @At("RETURN"), cancellable = true)
|
||||
private void onIsSleepingInBed(BlockPos sleepingPos, CallbackInfoReturnable<Boolean> info) {
|
||||
BlockState bedState = ((LivingEntity) (Object) this).world().getBlockState(sleepingPos);
|
||||
BlockState bedState = ((LivingEntity) (Object) this).getEntityWorld().getBlockState(sleepingPos);
|
||||
ActionResult result = EntitySleepEvents.ALLOW_BED.invoker().allowBed((LivingEntity) (Object) this, sleepingPos, bedState, info.getReturnValueZ());
|
||||
|
||||
if (result != ActionResult.PASS) {
|
||||
|
@@ -38,8 +38,8 @@ abstract class PlayerManagerMixin {
|
||||
ServerPlayerEntity newPlayer = cir.getReturnValue();
|
||||
ServerPlayerEvents.AFTER_RESPAWN.invoker().afterRespawn(oldPlayer, newPlayer, alive);
|
||||
|
||||
if (oldPlayer.world() != newPlayer.world()) {
|
||||
ServerEntityWorldChangeEvents.AFTER_PLAYER_CHANGE_WORLD.invoker().afterChangeWorld(newPlayer, oldPlayer.world(), newPlayer.world());
|
||||
if (oldPlayer.getEntityWorld() != newPlayer.getEntityWorld()) {
|
||||
ServerEntityWorldChangeEvents.AFTER_PLAYER_CHANGE_WORLD.invoker().afterChangeWorld(newPlayer, oldPlayer.getEntityWorld(), newPlayer.getEntityWorld());
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -53,7 +53,7 @@ import net.fabricmc.fabric.api.entity.event.v1.ServerPlayerEvents;
|
||||
@Mixin(ServerPlayerEntity.class)
|
||||
abstract class ServerPlayerEntityMixin extends LivingEntityMixin {
|
||||
@Shadow
|
||||
public abstract ServerWorld world();
|
||||
public abstract ServerWorld getEntityWorld();
|
||||
|
||||
/**
|
||||
* Minecraft by default does not call Entity#onKilledOther for a ServerPlayerEntity being killed.
|
||||
@@ -66,8 +66,8 @@ abstract class ServerPlayerEntityMixin extends LivingEntityMixin {
|
||||
|
||||
// If the damage source that killed the player was an entity, then fire the event.
|
||||
if (attacker != null) {
|
||||
attacker.onKilledOther(this.world(), (ServerPlayerEntity) (Object) this, source);
|
||||
ServerEntityCombatEvents.AFTER_KILLED_OTHER_ENTITY.invoker().afterKilledOtherEntity(this.world(), attacker, (ServerPlayerEntity) (Object) this);
|
||||
attacker.onKilledOther(this.getEntityWorld(), (ServerPlayerEntity) (Object) this, source);
|
||||
ServerEntityCombatEvents.AFTER_KILLED_OTHER_ENTITY.invoker().afterKilledOtherEntity(this.getEntityWorld(), attacker, (ServerPlayerEntity) (Object) this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ abstract class ServerPlayerEntityMixin extends LivingEntityMixin {
|
||||
*/
|
||||
@Inject(method = "worldChanged(Lnet/minecraft/server/world/ServerWorld;)V", at = @At("TAIL"))
|
||||
private void afterWorldChanged(ServerWorld origin, CallbackInfo ci) {
|
||||
ServerEntityWorldChangeEvents.AFTER_PLAYER_CHANGE_WORLD.invoker().afterChangeWorld((ServerPlayerEntity) (Object) this, origin, this.world());
|
||||
ServerEntityWorldChangeEvents.AFTER_PLAYER_CHANGE_WORLD.invoker().afterChangeWorld((ServerPlayerEntity) (Object) this, origin, this.getEntityWorld());
|
||||
}
|
||||
|
||||
@Inject(method = "copyFrom", at = @At("TAIL"))
|
||||
|
@@ -47,7 +47,7 @@ abstract class LivingEntityMixin extends Entity {
|
||||
|
||||
if (!EntityElytraEvents.ALLOW.invoker().allowElytraFlight(self)) {
|
||||
// The entity is already fall flying by now, we just need to stop it.
|
||||
if (!world().isClient()) {
|
||||
if (!getEntityWorld().isClient()) {
|
||||
setFlag(Entity.GLIDING_FLAG_INDEX, false);
|
||||
}
|
||||
|
||||
|
@@ -87,7 +87,7 @@ public final class EntityEventTests implements ModInitializer {
|
||||
});
|
||||
|
||||
ServerPlayerEvents.AFTER_RESPAWN.register((oldPlayer, newPlayer, alive) -> {
|
||||
LOGGER.info("Respawned {}, [{}, {}]", oldPlayer.getGameProfile().getName(), oldPlayer.world().getRegistryKey().getValue(), newPlayer.world().getRegistryKey().getValue());
|
||||
LOGGER.info("Respawned {}, [{}, {}]", oldPlayer.getGameProfile().getName(), oldPlayer.getEntityWorld().getRegistryKey().getValue(), newPlayer.getEntityWorld().getRegistryKey().getValue());
|
||||
});
|
||||
|
||||
// No fall damage if holding a feather in the main hand
|
||||
@@ -144,7 +144,7 @@ public final class EntityEventTests implements ModInitializer {
|
||||
|
||||
EntitySleepEvents.START_SLEEPING.register((entity, sleepingPos) -> {
|
||||
LOGGER.info("Entity {} sleeping at {}", entity, sleepingPos);
|
||||
BlockState bedState = entity.world().getBlockState(sleepingPos);
|
||||
BlockState bedState = entity.getEntityWorld().getBlockState(sleepingPos);
|
||||
|
||||
if (bedState.isOf(TEST_BED)) {
|
||||
boolean shouldBeOccupied = !entity.getStackInHand(Hand.MAIN_HAND).isOf(Items.ORANGE_WOOL);
|
||||
@@ -164,12 +164,12 @@ public final class EntityEventTests implements ModInitializer {
|
||||
});
|
||||
|
||||
EntitySleepEvents.MODIFY_SLEEPING_DIRECTION.register((entity, sleepingPos, sleepingDirection) -> {
|
||||
return entity.world().getBlockState(sleepingPos).isOf(TEST_BED) ? Direction.NORTH : sleepingDirection;
|
||||
return entity.getEntityWorld().getBlockState(sleepingPos).isOf(TEST_BED) ? Direction.NORTH : sleepingDirection;
|
||||
});
|
||||
|
||||
EntitySleepEvents.ALLOW_SLEEP_TIME.register((player, sleepingPos, vanillaResult) -> {
|
||||
// Yellow wool allows to sleep during the day
|
||||
if (player.world().isDay() && player.getStackInHand(Hand.MAIN_HAND).isOf(Items.YELLOW_WOOL)) {
|
||||
if (player.getEntityWorld().isDay() && player.getStackInHand(Hand.MAIN_HAND).isOf(Items.YELLOW_WOOL)) {
|
||||
return ActionResult.SUCCESS;
|
||||
}
|
||||
|
||||
|
@@ -99,7 +99,7 @@ public abstract class ClientPlayerInteractionManagerMixin {
|
||||
|
||||
if (player.isSpectator()) return; // vanilla spectator check happens later, repeat it before the event to avoid false invocations
|
||||
|
||||
ActionResult result = UseBlockCallback.EVENT.invoker().interact(player, player.world(), hand, blockHitResult);
|
||||
ActionResult result = UseBlockCallback.EVENT.invoker().interact(player, player.getEntityWorld(), hand, blockHitResult);
|
||||
|
||||
if (result != ActionResult.PASS) {
|
||||
if (result.isAccepted()) {
|
||||
@@ -115,12 +115,12 @@ public abstract class ClientPlayerInteractionManagerMixin {
|
||||
public void interactItem(PlayerEntity player, Hand hand, CallbackInfoReturnable<ActionResult> info) {
|
||||
// hook interactBlock between the spectator check and sending the first packet to invoke the use item event first
|
||||
// this needs to be in interactBlock to avoid sending a packet in line with the event javadoc
|
||||
ActionResult result = UseItemCallback.EVENT.invoker().interact(player, player.world(), hand);
|
||||
ActionResult result = UseItemCallback.EVENT.invoker().interact(player, player.getEntityWorld(), hand);
|
||||
|
||||
if (result != ActionResult.PASS) {
|
||||
if (result == ActionResult.SUCCESS) {
|
||||
// send interaction packet to the server with a new sequentially assigned id
|
||||
sendSequencedPacket((ClientWorld) player.world(), id -> new PlayerInteractItemC2SPacket(hand, id, player.getYaw(), player.getPitch()));
|
||||
sendSequencedPacket((ClientWorld) player.getEntityWorld(), id -> new PlayerInteractItemC2SPacket(hand, id, player.getYaw(), player.getPitch()));
|
||||
}
|
||||
|
||||
info.setReturnValue(result);
|
||||
@@ -129,7 +129,7 @@ public abstract class ClientPlayerInteractionManagerMixin {
|
||||
|
||||
@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayNetworkHandler;sendPacket(Lnet/minecraft/network/packet/Packet;)V", ordinal = 0), method = "attackEntity", cancellable = true)
|
||||
public void attackEntity(PlayerEntity player, Entity entity, CallbackInfo info) {
|
||||
ActionResult result = AttackEntityCallback.EVENT.invoker().interact(player, player.world(), Hand.MAIN_HAND /* TODO */, entity, null);
|
||||
ActionResult result = AttackEntityCallback.EVENT.invoker().interact(player, player.getEntityWorld(), Hand.MAIN_HAND /* TODO */, entity, null);
|
||||
|
||||
if (result != ActionResult.PASS) {
|
||||
if (result == ActionResult.SUCCESS) {
|
||||
|
@@ -75,7 +75,7 @@ public abstract class MinecraftClientMixin {
|
||||
cancellable = true
|
||||
)
|
||||
private void injectUseEntityCallback(CallbackInfo ci, @Local Hand hand, @Local EntityHitResult hitResult, @Local Entity entity) {
|
||||
ActionResult result = UseEntityCallback.EVENT.invoker().interact(player, player.world(), hand, entity, hitResult);
|
||||
ActionResult result = UseEntityCallback.EVENT.invoker().interact(player, player.getEntityWorld(), hand, entity, hitResult);
|
||||
|
||||
if (result != ActionResult.PASS) {
|
||||
if (result.isAccepted()) {
|
||||
|
@@ -48,7 +48,7 @@ public abstract class ServerPlayNetworkHandlerInteractEntityHandlerMixin impleme
|
||||
@Inject(method = "interactAt(Lnet/minecraft/util/Hand;Lnet/minecraft/util/math/Vec3d;)V", at = @At(value = "HEAD"), cancellable = true)
|
||||
public void onPlayerInteractEntity(Hand hand, Vec3d hitPosition, CallbackInfo info) {
|
||||
PlayerEntity player = field_28963.player;
|
||||
World world = player.world();
|
||||
World world = player.getEntityWorld();
|
||||
|
||||
EntityHitResult hitResult = new EntityHitResult(field_28962, hitPosition.add(field_28962.getX(), field_28962.getY(), field_28962.getZ()));
|
||||
ActionResult result = UseEntityCallback.EVENT.invoker().interact(player, world, hand, field_28962, hitResult);
|
||||
@@ -61,7 +61,7 @@ public abstract class ServerPlayNetworkHandlerInteractEntityHandlerMixin impleme
|
||||
@Inject(method = "interact(Lnet/minecraft/util/Hand;)V", at = @At(value = "HEAD"), cancellable = true)
|
||||
public void onPlayerInteractEntity(Hand hand, CallbackInfo info) {
|
||||
PlayerEntity player = field_28963.player;
|
||||
World world = player.world();
|
||||
World world = player.getEntityWorld();
|
||||
|
||||
ActionResult result = UseEntityCallback.EVENT.invoker().interact(player, world, hand, field_28962, null);
|
||||
|
||||
|
@@ -36,7 +36,7 @@ public class ServerPlayerEntityMixin {
|
||||
@Inject(method = "attack", at = @At("HEAD"), cancellable = true)
|
||||
public void onPlayerInteractEntity(Entity target, CallbackInfo info) {
|
||||
ServerPlayerEntity player = (ServerPlayerEntity) (Object) this;
|
||||
ActionResult result = AttackEntityCallback.EVENT.invoker().interact(player, player.world(), Hand.MAIN_HAND, target, null);
|
||||
ActionResult result = AttackEntityCallback.EVENT.invoker().interact(player, player.getEntityWorld(), Hand.MAIN_HAND, target, null);
|
||||
|
||||
if (result != ActionResult.PASS) {
|
||||
info.cancel();
|
||||
|
@@ -42,7 +42,7 @@ public class UseItemTests implements ModInitializer {
|
||||
if (!player.isSpectator()) {
|
||||
if (player.getStackInHand(hand).isOf(Items.BLAZE_ROD)) {
|
||||
if (!world.isClient()) {
|
||||
player.world().spawnEntity(new FireballEntity(player.world(), player, new Vec3d(0, 0, 0), 0));
|
||||
player.getEntityWorld().spawnEntity(new FireballEntity(player.getEntityWorld(), player, new Vec3d(0, 0, 0), 0));
|
||||
}
|
||||
|
||||
return ActionResult.SUCCESS;
|
||||
|
@@ -58,11 +58,11 @@ public final class DoubleRuleWidget extends EditGameRulesScreen.NamedRuleWidget
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(DrawContext drawContext, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
||||
// FIXME: Param names nightmare
|
||||
this.drawName(drawContext, y, x);
|
||||
public void render(DrawContext drawContext, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
||||
this.drawName(drawContext, this.method_73382(), this.method_73380());
|
||||
|
||||
this.textFieldWidget.setPosition(x + entryWidth - 44, y);
|
||||
this.textFieldWidget.setX(this.method_73389() - 44);
|
||||
this.textFieldWidget.setY(this.method_73382());
|
||||
this.textFieldWidget.render(drawContext, mouseX, mouseY, tickDelta);
|
||||
}
|
||||
}
|
||||
|
@@ -54,11 +54,11 @@ public final class EnumRuleWidget<E extends Enum<E>> extends EditGameRulesScreen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(DrawContext drawContext, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
||||
// FIXME: Param names nightmare
|
||||
this.drawName(drawContext, y, x);
|
||||
public void render(DrawContext drawContext, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
||||
this.drawName(drawContext, this.method_73382(), this.method_73380());
|
||||
|
||||
this.buttonWidget.setPosition(x + entryWidth - 89, y);
|
||||
this.buttonWidget.setX(this.method_73389() - 89);
|
||||
this.buttonWidget.setY(this.method_73382());
|
||||
this.buttonWidget.render(drawContext, mouseX, mouseY, tickDelta);
|
||||
}
|
||||
}
|
||||
|
@@ -50,7 +50,7 @@ public class BakedModelFeatureRenderer<S extends LivingEntityRenderState, M exte
|
||||
matrices.translate(-0.5F, 0.75F + aboveHead, -0.5F);
|
||||
// FIXME 1.21.9
|
||||
// FabricBlockModelRenderer.render(matrices.peek(), RenderLayerHelper.entityDelegate(vertexConsumers), model, 1, 1, 1, light, OverlayTexture.DEFAULT_UV, EmptyBlockRenderView.INSTANCE, BlockPos.ORIGIN, Blocks.AIR.getDefaultState());
|
||||
commandQueue.pushBlockStateModel(matrices, TexturedRenderLayers.getEntityCutout(), model, 1, 1, 1, light, OverlayTexture.DEFAULT_UV);
|
||||
commandQueue.method_73529(0).method_73484(matrices, TexturedRenderLayers.getEntityCutout(), model, 1, 1, 1, light, OverlayTexture.DEFAULT_UV, 0);
|
||||
matrices.pop();
|
||||
}
|
||||
}
|
||||
|
@@ -109,7 +109,7 @@ public final class PlayerLookup {
|
||||
*/
|
||||
public static Collection<ServerPlayerEntity> tracking(Entity entity) {
|
||||
Objects.requireNonNull(entity, "Entity cannot be null");
|
||||
ChunkManager manager = entity.world().getChunkManager();
|
||||
ChunkManager manager = entity.getEntityWorld().getChunkManager();
|
||||
|
||||
if (manager instanceof ServerChunkManager) {
|
||||
ServerChunkLoadingManager chunkLoadingManager = ((ServerChunkManager) manager).chunkLoadingManager;
|
||||
|
@@ -51,8 +51,8 @@ final class ChannelList extends EntryListWidget<ChannelList.Entry> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(DrawContext drawContext, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
||||
drawContext.drawTooltip(ChannelList.this.client.textRenderer, Text.literal(this.channel.toString()).formatted(Formatting.WHITE), x, y);
|
||||
public void render(DrawContext drawContext, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
||||
drawContext.drawTooltip(ChannelList.this.client.textRenderer, Text.literal(this.channel.toString()).formatted(Formatting.WHITE), method_73380(), method_73382());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -79,13 +79,13 @@ public class TrackStackEntity extends MobEntity {
|
||||
|
||||
@Override
|
||||
protected ActionResult interactMob(PlayerEntity player, Hand hand) {
|
||||
GlobalPos globalPos = GlobalPos.create(player.world().getRegistryKey(), player.getBlockPos());
|
||||
GlobalPos globalPos = GlobalPos.create(player.getEntityWorld().getRegistryKey(), player.getBlockPos());
|
||||
this.dataTracker.set(GLOBAL_POS, globalPos);
|
||||
|
||||
Item item = player.getStackInHand(hand).getItem();
|
||||
this.dataTracker.set(ITEM, item);
|
||||
|
||||
if (!player.world().isClient()) {
|
||||
if (!player.getEntityWorld().isClient()) {
|
||||
DyeColor[] colors = DyeColor.values();
|
||||
Optional<DyeColor> color = Optional.of(colors[this.getRandom().nextBetweenExclusive(0, colors.length)]);
|
||||
this.dataTracker.set(OPTIONAL_DYE_COLOR, color);
|
||||
|
@@ -50,7 +50,7 @@ public class TrackStackEntityRenderer extends MobEntityRenderer<TrackStackEntity
|
||||
matrices.translate(0, -2, 0);
|
||||
|
||||
for (Text line : labelLines) {
|
||||
entityRenderCommandQueue.pushLabel(matrices, renderState.nameLabelPos, line, !renderState.sneaking, renderState.light, renderState.squaredDistanceToCamera);
|
||||
entityRenderCommandQueue.method_73529(0).method_73482(matrices, renderState.nameLabelPos, line, !renderState.sneaking, renderState.light, renderState.squaredDistanceToCamera);
|
||||
matrices.translate(0, 0.25875f, 0);
|
||||
}
|
||||
|
||||
|
@@ -41,7 +41,7 @@ abstract class InGameOverlayRendererMixin {
|
||||
@Redirect(method = "renderOverlays", at = @At(value = "INVOKE", target = "net/minecraft/client/render/block/BlockModels.getModelParticleSprite(Lnet/minecraft/block/BlockState;)Lnet/minecraft/client/texture/Sprite;"))
|
||||
private static Sprite getModelParticleSpriteProxy(BlockModels models, BlockState state, @Local PlayerEntity playerEntity) {
|
||||
if (pos != null) {
|
||||
Sprite sprite = models.getModelParticleSprite(state, playerEntity.world(), pos);
|
||||
Sprite sprite = models.getModelParticleSprite(state, playerEntity.getEntityWorld(), pos);
|
||||
pos = null;
|
||||
return sprite;
|
||||
}
|
||||
|
@@ -27,12 +27,14 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.class_11788;
|
||||
import net.minecraft.class_11791;
|
||||
import net.minecraft.client.render.OutlineVertexConsumerProvider;
|
||||
import net.minecraft.client.render.OverlayTexture;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.block.BlockRenderManager;
|
||||
import net.minecraft.client.render.entity.command.BatchingEntityRenderCommandQueue;
|
||||
import net.minecraft.client.render.entity.command.FallingBlockCommandRenderer;
|
||||
import net.minecraft.client.render.entity.state.FallingBlockEntityRenderState;
|
||||
import net.minecraft.client.render.model.BlockStateModel;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
|
||||
@@ -46,16 +48,16 @@ abstract class FallingBlockCommandRendererMixin {
|
||||
|
||||
// Support multi-render layer models (FallingBlockCommand).
|
||||
@Inject(method = "render", at = @At(value = "INVOKE", target = "java/util/Iterator.hasNext()Z", remap = false, ordinal = 0))
|
||||
private void beforeRenderFallingBlocks(BatchingEntityRenderCommandQueue commandQueueImpl, VertexConsumerProvider.Immediate vertexConsumers, BlockRenderManager blockRenderManager, CallbackInfo ci, @Local Iterator<BatchingEntityRenderCommandQueue.FallingBlockCommand> iterator) {
|
||||
private void beforeRenderFallingBlocks(class_11788 queue, VertexConsumerProvider.Immediate vertexConsumers, BlockRenderManager blockRenderManager, OutlineVertexConsumerProvider outlineVertexConsumerProvider, CallbackInfo ci, @Local Iterator<BatchingEntityRenderCommandQueue.class_11790> iterator) {
|
||||
while (iterator.hasNext()) {
|
||||
BatchingEntityRenderCommandQueue.FallingBlockCommand fallingBlockCommand = iterator.next();
|
||||
FallingBlockEntityRenderState renderState = fallingBlockCommand.renderState();
|
||||
BlockState blockState = renderState.blockState;
|
||||
BatchingEntityRenderCommandQueue.class_11790 fallingBlockCommand = iterator.next();
|
||||
class_11791 renderState = fallingBlockCommand.movingBlockRenderState();
|
||||
BlockState blockState = renderState.field_62247;
|
||||
BlockStateModel model = blockRenderManager.getModel(blockState);
|
||||
long seed = blockState.getRenderingSeed(renderState.fallingBlockPos);
|
||||
long seed = blockState.getRenderingSeed(renderState.field_62245);
|
||||
matrices.push();
|
||||
matrices.multiplyPositionMatrix(fallingBlockCommand.pose());
|
||||
blockRenderManager.getModelRenderer().render(renderState, model, blockState, renderState.currentPos, matrices, RenderLayerHelper.movingDelegate(vertexConsumers), false, seed, OverlayTexture.DEFAULT_UV);
|
||||
blockRenderManager.getModelRenderer().render(renderState, model, blockState, renderState.field_62246, matrices, RenderLayerHelper.movingDelegate(vertexConsumers), false, seed, OverlayTexture.DEFAULT_UV);
|
||||
matrices.pop();
|
||||
}
|
||||
}
|
||||
|
@@ -16,23 +16,13 @@
|
||||
|
||||
package net.fabricmc.fabric.mixin.renderer.client.block.render;
|
||||
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Overwrite;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.block.BlockRenderManager;
|
||||
import net.minecraft.client.render.block.entity.PistonBlockEntityRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import net.fabricmc.fabric.api.renderer.v1.render.RenderLayerHelper;
|
||||
|
||||
@Mixin(PistonBlockEntityRenderer.class)
|
||||
abstract class PistonBlockEntityRendererMixin {
|
||||
/* TODO 1.21.9
|
||||
@Shadow
|
||||
@Final
|
||||
private BlockRenderManager manager;
|
||||
@@ -42,4 +32,6 @@ abstract class PistonBlockEntityRendererMixin {
|
||||
private void renderModel(BlockPos pos, BlockState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, World world, boolean cull, int overlay) {
|
||||
manager.getModelRenderer().render(world, manager.getModel(state), state, pos, matrices, RenderLayerHelper.movingDelegate(vertexConsumers), cull, state.getRenderingSeed(pos), overlay);
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
|
@@ -18,6 +18,7 @@ package net.fabricmc.fabric.impl.client.indigo.renderer;
|
||||
|
||||
import net.minecraft.block.BlockRenderType;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.block.BlockModelRenderer;
|
||||
import net.minecraft.client.render.block.BlockRenderManager;
|
||||
@@ -74,7 +75,7 @@ public class IndigoRenderer implements Renderer {
|
||||
float green = (tint >> 8 & 255) / 255.0F;
|
||||
float blue = (tint & 255) / 255.0F;
|
||||
FabricBlockModelRenderer.render(matrices.peek(), RenderLayerHelper.entityDelegate(vertexConsumers), model, red, green, blue, light, overlay, blockView, pos, state);
|
||||
((BlockRenderManagerAccessor) renderManager).getBlockEntityModelsGetter().get().render(state.getBlock(), ItemDisplayContext.NONE, matrices, vertexConsumers, light, overlay);
|
||||
((BlockRenderManagerAccessor) renderManager).getBlockEntityModelsGetter().get().render(state.getBlock(), ItemDisplayContext.NONE, matrices, MinecraftClient.getInstance().gameRenderer.getEntityRenderCommandQueue(), light, overlay);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -16,27 +16,17 @@
|
||||
|
||||
package net.fabricmc.fabric.mixin.client.indigo.renderer;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import net.minecraft.client.render.RenderLayer;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.item.ItemRenderState;
|
||||
import net.minecraft.client.render.item.ItemRenderer;
|
||||
import net.minecraft.client.render.model.BakedQuad;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.item.ItemDisplayContext;
|
||||
|
||||
import net.fabricmc.fabric.api.renderer.v1.render.FabricLayerRenderState;
|
||||
import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessLayerRenderState;
|
||||
import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MutableMeshImpl;
|
||||
import net.fabricmc.fabric.impl.client.indigo.renderer.render.ItemRenderContext;
|
||||
|
||||
@Mixin(value = ItemRenderState.LayerRenderState.class)
|
||||
abstract class ItemRenderStateLayerRenderStateMixin implements FabricLayerRenderState, AccessLayerRenderState {
|
||||
@@ -48,6 +38,7 @@ abstract class ItemRenderStateLayerRenderStateMixin implements FabricLayerRender
|
||||
mutableMesh.clear();
|
||||
}
|
||||
|
||||
/* TODO 1.21.9
|
||||
@Redirect(method = "render", at = @At(value = "INVOKE", target = "net/minecraft/client/render/item/ItemRenderer.renderItem(Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;II[ILjava/util/List;Lnet/minecraft/client/render/RenderLayer;Lnet/minecraft/client/render/item/ItemRenderState$Glint;)V"))
|
||||
private void renderItemProxy(ItemDisplayContext displayContext, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, int[] tints, List<BakedQuad> quads, RenderLayer layer, ItemRenderState.Glint glint) {
|
||||
if (mutableMesh.size() > 0) {
|
||||
@@ -57,6 +48,8 @@ abstract class ItemRenderStateLayerRenderStateMixin implements FabricLayerRender
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
@Override
|
||||
public MutableMeshImpl fabric_getMutableMesh() {
|
||||
return mutableMesh;
|
||||
|
@@ -84,7 +84,7 @@ public final class SpecialGuiElementRegistryImpl {
|
||||
|
||||
private static void registerVanillaFactories() {
|
||||
// Vanilla creates its special element renderers in the GameRenderer constructor
|
||||
REGISTERED_FACTORIES.put(EntityGuiElementRenderState.class, context -> new EntityGuiElementRenderer(context.vertexConsumers(), context.client().getEntityRenderDispatcher(), context.entityRenderDispatcher()));
|
||||
REGISTERED_FACTORIES.put(EntityGuiElementRenderState.class, context -> new EntityGuiElementRenderer(context.vertexConsumers(), context.client().getEntityRenderDispatcher()));
|
||||
REGISTERED_FACTORIES.put(PlayerSkinGuiElementRenderState.class, context -> new PlayerSkinGuiElementRenderer(context.vertexConsumers()));
|
||||
REGISTERED_FACTORIES.put(BookModelGuiElementRenderState.class, context -> new BookModelGuiElementRenderer(context.vertexConsumers()));
|
||||
REGISTERED_FACTORIES.put(BannerResultGuiElementRenderState.class, context -> new BannerResultGuiElementRenderer(context.vertexConsumers(), context.client().getAtlasManager()));
|
||||
|
@@ -38,6 +38,7 @@ import net.minecraft.client.gui.render.SpecialGuiElementRenderer;
|
||||
import net.minecraft.client.gui.render.state.GuiRenderState;
|
||||
import net.minecraft.client.gui.render.state.special.SpecialGuiElementRenderState;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.entity.command.EntityRenderCommandQueue;
|
||||
import net.minecraft.client.render.entity.command.EntityRenderDispatcher;
|
||||
|
||||
import net.fabricmc.fabric.impl.client.rendering.GuiRendererExtensions;
|
||||
@@ -62,7 +63,7 @@ abstract class GuiRendererMixin implements GuiRendererExtensions {
|
||||
private EntityRenderDispatcher entityRenderDispatcher = null;
|
||||
|
||||
@Inject(method = "<init>", at = @At(value = "RETURN"))
|
||||
private void mutableSpecialElementRenderers(GuiRenderState state, VertexConsumerProvider.Immediate vertexConsumers, List<SpecialGuiElementRenderer<?>> specialElementRenderers, CallbackInfo ci) {
|
||||
private void mutableSpecialElementRenderers(GuiRenderState state, VertexConsumerProvider.Immediate vertexConsumers, EntityRenderCommandQueue entityRenderCommandQueue, EntityRenderDispatcher entityRenderDispatcher, List list, CallbackInfo ci) {
|
||||
this.specialElementRenderers = new IdentityHashMap<>(this.specialElementRenderers);
|
||||
}
|
||||
|
||||
|
@@ -16,6 +16,7 @@
|
||||
|
||||
package net.fabricmc.fabric.test.rendering.client;
|
||||
|
||||
import net.minecraft.class_11785;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.render.OverlayTexture;
|
||||
import net.minecraft.client.render.RenderLayer;
|
||||
@@ -55,10 +56,11 @@ public class ArmorRenderingTests implements ClientModInitializer {
|
||||
armorModel.rightArm.visible = slot == EquipmentSlot.CHEST;
|
||||
armorModel.head.visible = slot == EquipmentSlot.HEAD;
|
||||
|
||||
entityRenderQueue.pushModel(armorModel, renderState, matrices, RenderLayer.getArmorCutoutNoCull(texture), light, OverlayTexture.DEFAULT_UV, 0xFFFFFFFF, null, 0, 0);
|
||||
class_11785 class11785 = entityRenderQueue.method_73529(0);
|
||||
class11785.method_73490(armorModel, renderState, matrices, RenderLayer.getArmorCutoutNoCull(texture), light, OverlayTexture.DEFAULT_UV, 0xFFFFFFFF, null, 0, null);
|
||||
|
||||
if (stack.hasGlint()) {
|
||||
entityRenderQueue.pushModel(armorModel, renderState, matrices, RenderLayer.getArmorEntityGlint(), light, OverlayTexture.DEFAULT_UV, 0xFFFFFFFF, null, 0, 0);
|
||||
class11785.method_73490(armorModel, renderState, matrices, RenderLayer.getArmorEntityGlint(), light, OverlayTexture.DEFAULT_UV, 0xFFFFFFFF, null, 0, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -79,7 +79,7 @@ public final class FeatureRendererTest implements ClientModInitializer {
|
||||
// Translate to center above the player's head
|
||||
matrices.translate(-0.5F, -state.height + 0.25F, -0.5F);
|
||||
// Render a diamond block above the player's head
|
||||
commandQueue.pushBlock(matrices, Blocks.DIAMOND_BLOCK.getDefaultState(), light, OverlayTexture.DEFAULT_UV);
|
||||
commandQueue.method_73529(0).method_73481(matrices, Blocks.DIAMOND_BLOCK.getDefaultState(), light, OverlayTexture.DEFAULT_UV, 0);
|
||||
|
||||
matrices.pop();
|
||||
}
|
||||
|
@@ -23,8 +23,8 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.client.render.VertexConsumer;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.RenderLayer;
|
||||
import net.minecraft.client.render.entity.command.EntityRenderCommandQueue;
|
||||
import net.minecraft.client.render.entity.model.AllayEntityModel;
|
||||
import net.minecraft.client.render.entity.model.EntityModelLayers;
|
||||
import net.minecraft.client.render.item.model.special.SpecialModelRenderer;
|
||||
@@ -53,15 +53,15 @@ public class SpecialBlockRendererTest implements ClientModInitializer {
|
||||
|
||||
return new SpecialModelRenderer<>() {
|
||||
@Override
|
||||
public void render(@Nullable Object data, ItemDisplayContext displayContext, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, boolean glint) {
|
||||
public void render(@Nullable Object data, ItemDisplayContext displayContext, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int light, int overlay, boolean glint) {
|
||||
matrices.push();
|
||||
matrices.translate(0.5f, 0.0f, 0.5f);
|
||||
matrices.translate(0, 1.46875f, 0);
|
||||
matrices.scale(1, -1, 1);
|
||||
matrices.multiply(RotationAxis.POSITIVE_Y.rotation((float) (Util.getMeasuringTimeMs() * 0.001)));
|
||||
matrices.translate(0, -1.46875f, 0);
|
||||
VertexConsumer vertexConsumer = vertexConsumers.getBuffer(allayModel.getLayer(ALLAY_TEXTURE));
|
||||
allayModel.render(matrices, vertexConsumer, light, overlay);
|
||||
entityRenderCommandQueue.method_73529(0)
|
||||
.method_73483(matrices, RenderLayer.getSolid(), (matricesEntry, vertexConsumer) -> allayModel.render(matrices, vertexConsumer, light, overlay));
|
||||
matrices.pop();
|
||||
}
|
||||
|
||||
|
@@ -42,7 +42,7 @@ public class BannerGuiElementRenderer extends SpecialGuiElementRenderer<BannerGu
|
||||
@Override
|
||||
protected void render(BannerGuiElementRenderState state, MatrixStack matrices) {
|
||||
client.gameRenderer.getDiffuseLighting().setShaderLights(DiffuseLighting.Type.ITEMS_FLAT);
|
||||
BannerBlockEntityRenderer.renderCanvas(client.getAtlasManager(), matrices, vertexConsumers, 15728880, OverlayTexture.DEFAULT_UV, MinecraftClient.getInstance().getLoadedEntityModels().getModelPart(EntityModelLayers.STANDING_BANNER_FLAG).getChild("flag"), ModelBaker.BANNER_BASE, true, state.color(), BannerPatternsComponent.DEFAULT);
|
||||
BannerBlockEntityRenderer.renderCanvas(client.getAtlasManager(), matrices, client.gameRenderer.getEntityRenderCommandQueue(), 15728880, OverlayTexture.DEFAULT_UV, MinecraftClient.getInstance().getLoadedEntityModels().getModelPart(EntityModelLayers.STANDING_BANNER_FLAG).getChild("flag"), ModelBaker.BANNER_BASE, true, state.color(), BannerPatternsComponent.DEFAULT);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -55,7 +55,7 @@ public class SpecialGuiElementRendererTestWithNewGuiRenderer implements ClientMo
|
||||
ProjectionType orgProjectionType = RenderSystem.getProjectionType();
|
||||
GpuBufferSlice orgShaderFog = RenderSystem.getShaderFog();
|
||||
|
||||
GuiRenderer guiRenderer = new GuiRenderer(newGuiRenderState, mc.getBufferBuilders().getEntityVertexConsumers(), Collections.emptyList());
|
||||
GuiRenderer guiRenderer = new GuiRenderer(newGuiRenderState, mc.getBufferBuilders().getEntityVertexConsumers(), mc.gameRenderer.getEntityRenderCommandQueue(), mc.gameRenderer.getEntityRenderDispatcher(), Collections.emptyList());
|
||||
FogRenderer fogRenderer = new FogRenderer();
|
||||
guiRenderer.render(fogRenderer.getFogBuffer(FogRenderer.FogType.NONE));
|
||||
fogRenderer.close();
|
||||
|
@@ -45,7 +45,7 @@ public abstract class CreateWorldScreenMixin extends Screen {
|
||||
super(null);
|
||||
}
|
||||
|
||||
@ModifyVariable(method = "show(Lnet/minecraft/client/MinecraftClient;Lnet/minecraft/client/gui/screen/Screen;Ljava/util/function/Function;Lnet/minecraft/client/world/GeneratorOptionsFactory;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/gui/screen/world/CreateWorldCallback;)V",
|
||||
@ModifyVariable(method = "show(Lnet/minecraft/client/MinecraftClient;Ljava/lang/Runnable;Ljava/util/function/Function;Lnet/minecraft/client/world/GeneratorOptionsFactory;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/gui/screen/world/CreateWorldCallback;)V",
|
||||
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/world/CreateWorldScreen;createServerConfig(Lnet/minecraft/resource/ResourcePackManager;Lnet/minecraft/resource/DataConfiguration;)Lnet/minecraft/server/SaveLoading$ServerConfig;"))
|
||||
private static ResourcePackManager onCreateResManagerInit(ResourcePackManager manager) {
|
||||
// Add mod data packs to the initial res pack manager so they are active even if the user doesn't use custom data packs
|
||||
@@ -53,7 +53,7 @@ public abstract class CreateWorldScreenMixin extends Screen {
|
||||
return manager;
|
||||
}
|
||||
|
||||
@Redirect(method = "show(Lnet/minecraft/client/MinecraftClient;Lnet/minecraft/client/gui/screen/Screen;Ljava/util/function/Function;Lnet/minecraft/client/world/GeneratorOptionsFactory;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/gui/screen/world/CreateWorldCallback;)V",
|
||||
@Redirect(method = "show(Lnet/minecraft/client/MinecraftClient;Ljava/lang/Runnable;Ljava/util/function/Function;Lnet/minecraft/client/world/GeneratorOptionsFactory;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/gui/screen/world/CreateWorldCallback;)V",
|
||||
at = @At(value = "FIELD", target = "Lnet/minecraft/resource/DataConfiguration;SAFE_MODE:Lnet/minecraft/resource/DataConfiguration;", ordinal = 0))
|
||||
private static DataConfiguration replaceDefaultSettings() {
|
||||
return ModResourcePackUtil.createDefaultDataConfiguration();
|
||||
|
@@ -48,7 +48,7 @@ public class ResourcePackOrganizerMixin {
|
||||
* They are managed entirely by ResourcePackManager on save, and are invisible to client.
|
||||
*/
|
||||
@Inject(method = "<init>", at = @At("TAIL"))
|
||||
private void removeHiddenPacksInit(Runnable updateCallback, Function iconIdSupplier, ResourcePackManager resourcePackManager, Consumer applier, CallbackInfo ci) {
|
||||
private void removeHiddenPacksInit(Consumer<ResourcePackOrganizer.AbstractPack> updateCallback, Function iconIdSupplier, ResourcePackManager resourcePackManager, Consumer applier, CallbackInfo ci) {
|
||||
this.enabledPacks.removeIf(profile -> ((FabricResourcePackProfile) profile).fabric_isHidden());
|
||||
this.disabledPacks.removeIf(profile -> ((FabricResourcePackProfile) profile).fabric_isHidden());
|
||||
}
|
||||
|
@@ -105,7 +105,7 @@ public final class FluidStorageUtil {
|
||||
if (!fill && handItem == Items.POTION) sound = SoundEvents.ITEM_BOTTLE_EMPTY;
|
||||
}
|
||||
|
||||
player.world().playSound(player, player.getX(), player.getEyeY(), player.getZ(), sound, SoundCategory.PLAYERS, 1, 1);
|
||||
player.getEntityWorld().playSound(player, player.getX(), player.getEyeY(), player.getZ(), sound, SoundCategory.PLAYERS, 1, 1);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@@ -77,7 +77,7 @@ class PlayerInventoryStorageImpl extends InventoryStorageImpl implements PlayerI
|
||||
|
||||
// Drop in the world on the server side (will be synced by the game with the client).
|
||||
// Dropping items is server-side only because it involves randomness.
|
||||
if (amount > 0 && !playerInventory.player.world().isClient()) {
|
||||
if (amount > 0 && !playerInventory.player.getEntityWorld().isClient()) {
|
||||
droppedStacks.addDrop(variant, amount, throwRandomly, retainOwnership, transaction);
|
||||
}
|
||||
}
|
||||
|
@@ -53,7 +53,7 @@ public class FluidVariantRenderTest implements ClientModInitializer {
|
||||
|
||||
for (FluidVariant variant : variants) {
|
||||
Sprite[] sprites = FluidVariantRendering.getSprites(variant);
|
||||
int color = FluidVariantRendering.getColor(variant, player.world(), player.getBlockPos());
|
||||
int color = FluidVariantRendering.getColor(variant, player.getEntityWorld(), player.getBlockPos());
|
||||
|
||||
if (sprites != null) {
|
||||
drawContext.drawSpriteStretched(RenderPipelines.GUI_TEXTURED, sprites[0], 0, renderY, 16, 16, color);
|
||||
|
@@ -186,7 +186,6 @@ transitive-accessible method net/minecraft/block/EndPortalBlock <init> (Lnet/min
|
||||
transitive-accessible method net/minecraft/block/EndRodBlock <init> (Lnet/minecraft/block/AbstractBlock$Settings;)V
|
||||
transitive-accessible method net/minecraft/block/EnderChestBlock <init> (Lnet/minecraft/block/AbstractBlock$Settings;)V
|
||||
transitive-accessible method net/minecraft/block/FarmlandBlock <init> (Lnet/minecraft/block/AbstractBlock$Settings;)V
|
||||
transitive-accessible method net/minecraft/block/FletchingTableBlock <init> (Lnet/minecraft/block/AbstractBlock$Settings;)V
|
||||
transitive-accessible method net/minecraft/block/FlowerbedBlock <init> (Lnet/minecraft/block/AbstractBlock$Settings;)V
|
||||
transitive-accessible method net/minecraft/block/FluidBlock <init> (Lnet/minecraft/fluid/FlowableFluid;Lnet/minecraft/block/AbstractBlock$Settings;)V
|
||||
transitive-accessible method net/minecraft/block/FungusBlock <init> (Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/block/Block;Lnet/minecraft/block/AbstractBlock$Settings;)V
|
||||
|
@@ -2,9 +2,9 @@ org.gradle.jvmargs=-Xmx2560M
|
||||
org.gradle.parallel=true
|
||||
org.gradle.configuration-cache=false
|
||||
|
||||
version=0.132.0
|
||||
minecraft_version=25w33a
|
||||
yarn_version=+build.5
|
||||
version=0.132.1
|
||||
minecraft_version=25w34b
|
||||
yarn_version=+build.1
|
||||
loader_version=0.17.0
|
||||
installer_version=1.0.1
|
||||
|
||||
@@ -17,42 +17,42 @@ fabric-api-lookup-api-v1-version=1.6.103
|
||||
fabric-biome-api-v1-version=16.0.13
|
||||
fabric-block-api-v1-version=1.1.5
|
||||
fabric-block-view-api-v2-version=1.0.33
|
||||
fabric-client-gametest-api-v1-version=4.2.7
|
||||
fabric-client-gametest-api-v1-version=4.2.8
|
||||
fabric-command-api-v2-version=2.3.3
|
||||
fabric-content-registries-v0-version=10.1.0
|
||||
fabric-content-registries-v0-version=10.1.1
|
||||
fabric-crash-report-info-v1-version=0.3.17
|
||||
fabric-data-attachment-api-v1-version=1.8.15
|
||||
fabric-data-generation-api-v1-version=23.2.9
|
||||
fabric-data-attachment-api-v1-version=1.8.16
|
||||
fabric-data-generation-api-v1-version=23.2.10
|
||||
fabric-dimensions-v1-version=4.0.21
|
||||
fabric-entity-events-v1-version=2.1.4
|
||||
fabric-events-interaction-v0-version=4.0.26
|
||||
fabric-game-rule-api-v1-version=1.0.75
|
||||
fabric-gametest-api-v1-version=3.1.13
|
||||
fabric-item-api-v1-version=11.5.2
|
||||
fabric-item-group-api-v1-version=4.2.17
|
||||
fabric-entity-events-v1-version=2.1.5
|
||||
fabric-events-interaction-v0-version=4.0.27
|
||||
fabric-game-rule-api-v1-version=1.0.76
|
||||
fabric-gametest-api-v1-version=3.1.14
|
||||
fabric-item-api-v1-version=11.5.3
|
||||
fabric-item-group-api-v1-version=4.2.18
|
||||
fabric-key-binding-api-v1-version=1.0.67
|
||||
fabric-lifecycle-events-v1-version=2.6.6
|
||||
fabric-loot-api-v2-version=3.0.59
|
||||
fabric-loot-api-v3-version=2.0.6
|
||||
fabric-loot-api-v2-version=3.0.60
|
||||
fabric-loot-api-v3-version=2.0.7
|
||||
fabric-message-api-v1-version=6.1.4
|
||||
fabric-model-loading-api-v1-version=5.2.10
|
||||
fabric-networking-api-v1-version=5.0.4
|
||||
fabric-object-builder-api-v1-version=21.1.11
|
||||
fabric-particles-v1-version=4.1.11
|
||||
fabric-recipe-api-v1-version=8.1.17
|
||||
fabric-registry-sync-v0-version=6.1.30
|
||||
fabric-renderer-api-v1-version=7.0.7
|
||||
fabric-renderer-indigo-version=4.0.7
|
||||
fabric-model-loading-api-v1-version=5.2.11
|
||||
fabric-networking-api-v1-version=5.0.5
|
||||
fabric-object-builder-api-v1-version=21.1.12
|
||||
fabric-particles-v1-version=4.1.12
|
||||
fabric-recipe-api-v1-version=8.1.18
|
||||
fabric-registry-sync-v0-version=6.1.31
|
||||
fabric-renderer-api-v1-version=7.0.8
|
||||
fabric-renderer-indigo-version=4.0.8
|
||||
fabric-rendering-fluids-v1-version=3.1.34
|
||||
fabric-rendering-v1-version=14.0.2
|
||||
fabric-rendering-v1-version=14.0.3
|
||||
fabric-resource-conditions-api-v1-version=5.0.27
|
||||
fabric-resource-loader-v0-version=3.1.15
|
||||
fabric-resource-loader-v0-version=3.1.16
|
||||
fabric-screen-api-v1-version=2.1.3
|
||||
fabric-screen-handler-api-v1-version=1.3.139
|
||||
fabric-screen-handler-api-v1-version=1.3.140
|
||||
fabric-serialization-api-v1-version=1.0.0
|
||||
fabric-sound-api-v1-version=1.0.44
|
||||
fabric-tag-api-v1-version=1.2.5
|
||||
fabric-transfer-api-v1-version=6.0.9
|
||||
fabric-transitive-access-wideners-v1-version=6.4.3
|
||||
fabric-tag-api-v1-version=1.2.6
|
||||
fabric-transfer-api-v1-version=6.0.10
|
||||
fabric-transitive-access-wideners-v1-version=6.4.4
|
||||
fabric-convention-tags-v1-version=2.1.43
|
||||
fabric-convention-tags-v2-version=2.15.8
|
||||
|
Reference in New Issue
Block a user