Jump to content

Comparator Issue with Double Chests - Reproducable w/ Screenshot and Explanation


Recommended Posts

Posted

Version of Forge in Use: 1.10.2-12.18.1.2076 also 1.10.2-12.18.1.2065. No other Forge versions were tested.

Only fresh installations of Forge were used and no mods were installed.

Tested with fresh installations of Vanilla 1.10.2 and snapshot 16w33a. I have been unable to reproduce this problem with those, so I assumed it was a Forge issue and am reporting it here.

 

TL;DR

 

It appears that comparators can treat double chests as 2 separate chests depending on the circumstances. The top 3 rows are considered one chest while the bottom 3 rows are considered a second. The comparators only seem to read their "side" when the chest is emptied with a hopper. A block update is required to turn the "stuck" comparator off. If comparators are placed on both sides of a double chest they both properly detect when an item is placed anywhere into the it, but only one comparator properly detects when the chest is emptied with a hopper.

 

Full Description and Screenshot

 

Here is a very easy method of reproducing this problem.

 

 

 

hyL5AEZ.png

 

 

 

If you place items into the chest, both comparators will turn on and output an expected, proper signal. When a hopper under the chest removes all of the items, only the comparator associated with that "side" of the chest will update and turn off properly. The other comparator will remain on until the player manually causes it to update by either opening the original chest, breaking the comparator, etc.

 

You can verify this behavior by alternating which rows of the double chest you use. If you place the items manually into only the top 3 rows, you will find that the comparators produce different results than if you had placed them in one of the bottom 3 rows.

 

Though my screenshot does not show it, it does not seem to matter which side of the double chest the hopper drains from, only from which "side" of the chest the last item was removed. I tested all 6 adjacent sides of the chest and the problem occurred the same way each time.

 

The orientation of the chest being measured by the comparators also does not appear to matter. I built chests rotated in all directions and facing all directions and the results are consistent. It does appear that the North/West half is considered to provide the top 3 rows, and the South/East half provides the bottom 3 rows.

 

I hope I have provided enough useful information.

Thank you very much for reading.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello, I have this same problem. Did you manage to find a solution? Any help would be appreciated. Thanks.
    • log: https://mclo.gs/QJg3wYX as stated in the title, my game freezes upon loading into the server after i used a far-away waystone in it. The modpack i'm using is better minecraft V18. Issue only comes up in this specific server, singleplayer and other servers are A-okay. i've already experimented with removing possible culprits like modernfix and various others to no effect. i've also attempted a full reinstall of the modpack profile. Issue occurs shortly after the 'cancel' button dissapears on the 'loading world' section of the loading screen.   thanks in advance.
    • You would have better results asking a more specific question. What have you done? What exactly do you need help with? Please also read the FAQ regarding posting logs.
    • Hi, this is my second post with the same content as no one answered this and it's been a long time since I made the last post, I want to make a client-only mod, everything is ok, but when I use shaders, none of the textures rendered in RenderLevelStageEvent nor the crow entity model are rendered, I want them to be visible, because it's a horror themed mod I've already tried it with different shaders, but it didn't work with any of them and I really want to add support for shaders Here is how i render the crow model in the CrowEntityRenderer<CrowEntity>, by the time i use this method, i know is not the right method but i don't think this is the cause of the problem, the renderType i'm using is entityCutout @Override public void render(CrowEntity p_entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight) { super.render(p_entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); ClientEventHandler.getClient().crow.renderToBuffer(poseStack, bufferSource.getBuffer(ClientEventHandler.getClient().crow .renderType(TEXTURE)), packedLight, OverlayTexture.NO_OVERLAY, Utils.rgb(255, 255, 255)); } Here renderLevelStage @Override public void renderWorld(RenderLevelStageEvent e) { horrorEvents.draw(e); } Here is how i render every event public void draw(RenderLevelStageEvent e) { for (HorrorEvent event : currentHorrorEvents) { event.tick(e.getPartialTick()); event.draw(e); } } Here is how i render the crow model on the event @Override public void draw(RenderLevelStageEvent e) { if(e.getStage() == RenderLevelStageEvent.Stage.AFTER_ENTITIES) { float arcProgress = getArcProgress(0.25f); int alpha = (int) Mth.lerp(arcProgress, 0, 255); int packedLight = LevelRenderer.getLightColor(Minecraft.getInstance().level, blockPos); VertexConsumer builder = ClientEventHandler.bufferSource.getBuffer(crow); Crow<CreepyBirdHorrorEvent> model = ClientEventHandler .getClient().crow; model.setupAnim(this); RenderHelper.renderModelInWorld(model, position, offset, e.getCamera(), e.getPoseStack(), builder, packedLight, OverlayTexture.NO_OVERLAY, alpha); builder = ClientEventHandler.bufferSource.getBuffer(eyes); RenderHelper.renderModelInWorld(model, position, offset, e.getCamera(), e.getPoseStack(), builder, 15728880, OverlayTexture.NO_OVERLAY, alpha); } } How i render the model public static void renderModelInWorld(Model model, Vector3f pos, Vector3f offset, Camera camera, PoseStack matrix, VertexConsumer builder, int light, int overlay, int alpha) { matrix.pushPose(); Vec3 cameraPos = camera.getPosition(); double finalX = pos.x - cameraPos.x + offset.x; double finalY = pos.y - cameraPos.y + offset.y; double finalZ = pos.z - cameraPos.z + offset.z; matrix.pushPose(); matrix.translate(finalX, finalY, finalZ); matrix.mulPose(Axis.XP.rotationDegrees(180f)); model.renderToBuffer(matrix, builder, light, overlay, Utils .rgba(255, 255, 255, alpha)); matrix.popPose(); matrix.popPose(); } Thanks in advance
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.