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

Concrete mixer can do multiple things before going back to the hut #10331

Open
wants to merge 1 commit into
base: version/main
Choose a base branch
from

Conversation

Thodor12
Copy link
Contributor

Closes #10209

Changes proposed in this pull request

  • Introduced 2 new AI stages for placing and harvesting, so that the AI may be kept in a placing/harvesting stage until everything is done at once.

Testing

  • Yes I tested this before submitting it.
  • I also did a multiplayer test.

Review please

int size = 0;
for (List<BlockPos> positions : waterPos.values())
{
size += positions.size();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

huh?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The positions stored in the map contain the depth as the key, and the positions of the water at the given level.

By the way the code looks it's technically allowed to have several water streams at the same time, there's no practical limit on this.

{
for (final BlockPos pos : waterPos.getOrDefault(i, Collections.emptyList()))
{
final BlockState state = colony.getWorld().getBlockState(pos);
if (!state.getFluidState().isEmpty() && state.getBlock() == Blocks.WATER)
if (state.is(Blocks.WATER))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

flowing water is not water though

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well I tested this, and it is.

If a block contains flowing water the block is still marked as containing water, the fluid state however just lists a different water depth.
There's no need for a depth check because the waterPos already has determined the required water level should be good in the schematic.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please double check this. Because at least in some cases as far as I am aware, if air gets some low level water into it, it's fluidstate not empty, but actual state is not water.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

The concrete mixer's movements seem strange while working.
2 participants