Skip to content

Conversation

@xNatsuri
Copy link
Contributor

This PR implements candles and candle cakes.

@xNatsuri xNatsuri added the feature New feature or request label Dec 23, 2025
@DaPigGuy DaPigGuy self-assigned this Dec 24, 2025
Copy link
Member

@Sandertv Sandertv left a comment

Choose a reason for hiding this comment

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

Got a couple of ideas for this PR, but the idea with the OptionalColour is exactly what I had in mind. Did you run into any problems doing it this way?

@xNatsuri
Copy link
Contributor Author

xNatsuri commented Jan 3, 2026

All requested changes have been made.

Copy link
Member

@Sandertv Sandertv left a comment

Choose a reason for hiding this comment

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

Got a couple of final comments from my end, mostly style stuff, looks good to me otherwise!

// BreakInfo ...
func (c Cake) BreakInfo() BreakInfo {
if c.Candle {
return newBreakInfo(0.5, alwaysHarvestable, nothingEffective, silkTouchOnlyDrop(Candle{Colour: c.CandleColour}))
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
return newBreakInfo(0.5, alwaysHarvestable, nothingEffective, silkTouchOnlyDrop(Candle{Colour: c.CandleColour}))
return newBreakInfo(0.5, alwaysHarvestable, nothingEffective, oneOf(Candle{Colour: c.CandleColour}))

Copy link
Member

Choose a reason for hiding this comment

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

Missing water log extinguish behavior


// Colour is the colour of the candle.
Colour item.OptionalColour
// Candles is the number of candles.
Copy link
Member

Choose a reason for hiding this comment

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

This doesn't seem entirely accurate since Candle{Candles: 0} actually has one candle? Perhaps AdditionalCandles?

return placed(ctx)
}

if added := addCandle(pos.Side(cube.FaceUp)); added && face == cube.FaceUp {
Copy link
Member

Choose a reason for hiding this comment

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

Why only for Up face?

return false
}

place(tx, pos, c, user, ctx)
Copy link
Member

Choose a reason for hiding this comment

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

Should check if there is not air under the position first, i.e. when placing against a wall

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants