Skip to content

Implement ice - #1438

Open
MEMOxiiii wants to merge 2 commits into
df-mc:masterfrom
MEMOxiiii:block/ice
Open

Implement ice#1438
MEMOxiiii wants to merge 2 commits into
df-mc:masterfrom
MEMOxiiii:block/ice

Conversation

@MEMOxiiii

Copy link
Copy Markdown
Contributor

Adds ice, which melts into water when a neighbouring block is lit above light level 11 by a light source, drops only with Silk Touch and otherwise leaves water behind when a block supports it, and produces nothing in the Nether. Adds Tx.BlockLight since melting must ignore sky light and only Light and SkyLight existed.

636688856-a89915b2-da03-4299-9208-31f5b56eda99

@MEMOxiiii
MEMOxiiii force-pushed the block/ice branch 2 times, most recently from 9adfc9e to 9df3dc3 Compare August 18, 2026 10:50
@HashimTheArab

Copy link
Copy Markdown
Collaborator
  1. server/block/ice.go:39-53

Please exclude Creative mode before converting the broken block to water. BreakHandler is still called for creative breaks, so ice over a supported block currently leaves a water source. Vanilla Creative ice simply disappears. Add a GameMode().CreativeInventory() guard.

  1. server/block/ice.go:47-50

Please avoid using len(b.Model().BBox(...)) as the support predicate. BBox means “has collision,” not “is motion-blocking/solid”; partial blocks such as fences, ladders, beds, or cake can incorrectly cause ice to produce water. Match vanilla’s solid/motion-blocking-or-fluid check instead.

@MEMOxiiii

Copy link
Copy Markdown
Contributor Author
  1. server/block/ice.go:39-53

Please exclude Creative mode before converting the broken block to water. BreakHandler is still called for creative breaks, so ice over a supported block currently leaves a water source. Vanilla Creative ice simply disappears. Add a GameMode().CreativeInventory() guard.

  1. server/block/ice.go:47-50

Please avoid using len(b.Model().BBox(...)) as the support predicate. BBox means “has collision,” not “is motion-blocking/solid”; partial blocks such as fences, ladders, beds, or cake can incorrectly cause ice to produce water. Match vanilla’s solid/motion-blocking-or-fluid check instead.

done

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.

2 participants