mirror of
https://github.com/MinecraftForge/MinecraftForge
synced 2026-08-22 04:26:10 -04:00
Fix redstone updates for comparators going up/down incorrectly. Related: #9973
This commit is contained in:
parent
79efe2ac36
commit
e69b07a54a
4 changed files with 26 additions and 5 deletions
|
|
@ -1,6 +1,6 @@
|
|||
--- a/net/minecraft/client/renderer/entity/EntityRenderDispatcher.java
|
||||
+++ b/net/minecraft/client/renderer/entity/EntityRenderDispatcher.java
|
||||
@@ -243,12 +_,12 @@
|
||||
@@ -246,12 +_,12 @@
|
||||
) {
|
||||
AABB aabb = p_114444_.getBoundingBox().move(-p_114444_.getX(), -p_114444_.getY(), -p_114444_.getZ());
|
||||
ShapeRenderer.renderLineBox(p_114442_, p_114443_, aabb, p_343193_, p_342304_, p_342638_, 1.0F);
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
p_114442_.pushPose();
|
||||
double d3 = d0 + Mth.lerp((double)p_114445_, enderdragonpart.xOld, enderdragonpart.getX());
|
||||
double d4 = d1 + Mth.lerp((double)p_114445_, enderdragonpart.yOld, enderdragonpart.getY());
|
||||
@@ -481,6 +_,10 @@
|
||||
@@ -484,6 +_,10 @@
|
||||
return this.itemInHandRenderer;
|
||||
}
|
||||
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
@Override
|
||||
public void onResourceManagerReload(ResourceManager p_174004_) {
|
||||
EntityRendererProvider.Context entityrendererprovider$context = new EntityRendererProvider.Context(
|
||||
@@ -488,5 +_,6 @@
|
||||
@@ -491,5 +_,6 @@
|
||||
);
|
||||
this.renderers = EntityRenderers.createEntityRenderers(entityrendererprovider$context);
|
||||
this.playerRenderers = EntityRenderers.createPlayerRenderers(entityrendererprovider$context);
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@
|
|||
T t = p_261885_.tryCast(enderdragonpart);
|
||||
if (t != null && p_261688_.test(t)) {
|
||||
p_262071_.add(t);
|
||||
@@ -932,16 +_,15 @@
|
||||
@@ -932,17 +_,16 @@
|
||||
public abstract Scoreboard getScoreboard();
|
||||
|
||||
public void updateNeighbourForOutputSignal(BlockPos p_46718_, Block p_46719_) {
|
||||
|
|
@ -175,10 +175,12 @@
|
|||
blockpos = blockpos.relative(direction);
|
||||
blockstate = this.getBlockState(blockpos);
|
||||
- if (blockstate.is(Blocks.COMPARATOR)) {
|
||||
- this.neighborChanged(blockstate, blockpos, p_46719_, null, false);
|
||||
+ if (blockstate.getWeakChanges(this, blockpos)) {
|
||||
this.neighborChanged(blockstate, blockpos, p_46719_, null, false);
|
||||
+ blockstate.onNeighborChange(this, blockpos, p_46718_);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1044,6 +_,20 @@
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import net.minecraft.gametest.framework.GameTestHelper;
|
|||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.entity.BarrelBlockEntity;
|
||||
import net.minecraft.world.level.block.entity.ChestBlockEntity;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.test.BaseTestMod;
|
||||
|
|
@ -88,4 +89,22 @@ public class UpdateOrder extends BaseTestMod {
|
|||
helper.succeed();
|
||||
});
|
||||
}
|
||||
|
||||
@GameTest(template = "update_order:upward_update")
|
||||
public static void up(GameTestHelper helper) {
|
||||
var chestPos = new BlockPos(0, 1, 2);
|
||||
var expectedPos = new BlockPos(2, 1, 0);
|
||||
var unexpectedPos = new BlockPos(0, 4, 0);
|
||||
helper.assertBlockPresent(Blocks.BARREL, chestPos);
|
||||
helper.assertBlockPresent(Blocks.AIR, expectedPos);
|
||||
helper.assertBlockPresent(Blocks.AIR, unexpectedPos);
|
||||
var chest = helper.<BarrelBlockEntity>getBlockEntity(chestPos);
|
||||
chest.setItem(0, new ItemStack(Items.DIRT));
|
||||
|
||||
helper.runAfterDelay(10, () -> { // There are a lot of things happening, give it a few ticks
|
||||
helper.assertBlockNotPresent(Blocks.WHITE_WOOL, unexpectedPos);
|
||||
helper.assertBlockPresent(Blocks.WHITE_WOOL, expectedPos);
|
||||
helper.succeed();
|
||||
});
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue