Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Pillar/Casing Block can not connect correctly #196

Open
witherixg opened this issue Feb 12, 2025 · 4 comments
Open

[Bug] Pillar/Casing Block can not connect correctly #196

witherixg opened this issue Feb 12, 2025 · 4 comments
Labels
Bug Something isn't working

Comments

@witherixg
Copy link

Describe the bug
A Pillar Block in Create doesnt connect to one wrapping Slab Copycat (Casing Block similar)

To Reproduce
Steps to reproduce the behavior:

  1. Place a copycat_slab(bottom, name it block1)
  2. Fill a Pillar Block in it
  3. Place a Pillar Block next to block1 (name it block2)
  4. See error(They dont connect)

Expected behavior
They connect correctly

Screenshots

Image

Desktop (please complete the following information):

  • Minecraft Version: 1.20.1
  • Mod Loader: Forge 47.3.0
  • Mod Version: 2.1.4, 2.2.0

Additional context

package com.simibubi.create.foundation.block.connected;

public class RotatedPillarCTBehaviour extends HorizontalCTBehaviour {
    public boolean connectsTo(BlockState state, BlockState other, BlockAndTintGetter reader, BlockPos pos, BlockPos otherPos, Direction face, Direction primaryOffset, Direction secondaryOffset) {
    // ...
    }
}

When connectsTo runs, state -> block2, other -> block1, then block1 is considerd create:copycat_base instead of copycats:copycat_slab.

So, block1 is an instance of com.simibubi.create.content.decoration.copycat.CopycatBlock, not package com.copycatsplus.copycats.foundation.copycat.ICopycatBlock, and the mixin method will run return (Block)original.call(new Object[]{instance});

@witherixg witherixg added the Bug Something isn't working label Feb 12, 2025
@hlysine
Copy link
Member

hlysine commented Feb 12, 2025

Is this the underside of your setup? What does the top side look like?

If you are using a full pillar block in the middle and half slabs around it, I won't expect them to connect because they have a height difference.

@witherixg
Copy link
Author

Top:
Image

in my opinion, since they look same at the bottom, they should connect there, and at the top, they shouldnt connect

@witherixg
Copy link
Author

Also, Pillar Blocks in copycats:copycat_block connect incorrectly:

Image

the block in red square is copycats:copycat_block

@hlysine
Copy link
Member

hlysine commented Feb 13, 2025

in my opinion, since they look same at the bottom, they should connect there, and at the top, they shouldnt connect

The universal CT handles per-block connections instead of per-face because per-face computations are handled by model loaders provided by each CT mod (Create, Continuity, Athena, Fusion). Copycats+ can control which block they connect to by wrapping their Level instance and replacing blocks at specific positions, but we only have limited control of the block face queries issued by the model loaders (via getAppearance which only works if both sides of the connection is an ICopycatBlock)

The other issue is performance. Universal CT relies on expensive shape comparisons to function, and having to compare all 8 sides for all 6 faces will create immense chunk update lag.

Also, Pillar Blocks in copycats:copycat_block connect incorrectly:

This is probably bug. Will look into it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants