-
Notifications
You must be signed in to change notification settings - Fork 43
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
2.2.x Feature: Heliolith, Levita, and Surtrum rework #785
Conversation
WalkthroughThe recent updates to the "paradise_lost" mod introduce new blocks and items, including the unique Changes
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review Status
Configuration used: CodeRabbit UI
Files ignored due to path filters (86)
src/main/resources/assets/paradise_lost/blockstates/heliolith.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/blockstates/heliolith_slab.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/blockstates/heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/blockstates/heliolith_wall.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/blockstates/levita.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/blockstates/levita_ore.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_slab.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/lang/en_us.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith_slab.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith_slab_top.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_inner.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_outer.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith_wall_inventory.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith_wall_post.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side_tall.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/levita.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/levita_ore.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/smooth_heliolith.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab_top.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_inner.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_outer.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/cloud_vial.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/heliolith.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/heliolith_slab.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/heliolith_wall.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/levita.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/levita_gem.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/levita_ore.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/levita_wand.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/mystery_milk.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/smooth_heliolith.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_slab.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/assets/paradise_lost/textures/block/heliolith.png
is excluded by!**/*.png
,!**/*.png
src/main/resources/assets/paradise_lost/textures/block/levita.png
is excluded by!**/*.png
,!**/*.png
src/main/resources/assets/paradise_lost/textures/block/levita_ore.png
is excluded by!**/*.png
,!**/*.png
src/main/resources/assets/paradise_lost/textures/block/levitator_side.png
is excluded by!**/*.png
,!**/*.png
src/main/resources/assets/paradise_lost/textures/block/smooth_heliolith.png
is excluded by!**/*.png
,!**/*.png
src/main/resources/assets/paradise_lost/textures/item/levita_gem.png
is excluded by!**/*.png
,!**/*.png
src/main/resources/assets/paradise_lost/textures/item/levita_wand.png
is excluded by!**/*.png
,!**/*.png
src/main/resources/data/paradise_lost/advancements/consume_food.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_slab.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_wall.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/loot_tables/blocks/levita.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/loot_tables/blocks/levita_ore.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_slab.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/heliolith_slab.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/heliolith_slab_from_heliolith_stonecutting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/heliolith_stairs_from_heliolith_stonecutting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/heliolith_wall.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/heliolith_wall_from_heliolith_stonecutting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/levita_from_blasting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/levita_from_smelting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/levita_wand.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/levitator.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/smooth_heliolith.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/smooth_heliolith_from_heliolith_stonecutting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_heliolith_stonecutting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_smooth_heliolith_stonecutting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_heliolith_stonecutting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_smooth_heliolith_stonecutting.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/tags/blocks/mineable_by_shovel.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/tags/blocks/natural_stone.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/tags/blocks/ores.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/tags/blocks/requires_iron_tool.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/tags/blocks/stone_blocks.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/tags/blocks/stone_slabs.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/tags/blocks/stone_stairs.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/tags/blocks/stone_walls.json
is excluded by!**/*.json
src/main/resources/data/paradise_lost/tags/items/tool/igniting_tools.json
is excluded by!**/*.json
src/main/resources/paradise_lost.mixins.json
is excluded by!**/*.json
Files selected for processing (14)
- src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java (3 hunks)
- src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java (3 hunks)
- src/main/java/net/id/paradiselost/items/ParadiseLostItems.java (7 hunks)
- src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java (1 hunks)
- src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java (1 hunks)
- src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java (1 hunks)
- src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java (1 hunks)
- src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java (1 hunks)
- src/main/java/net/id/paradiselost/world/feature/ParadiseLostFeatures.java (1 hunks)
- src/main/java/net/id/paradiselost/world/feature/configs/JaggedOreConfig.java (1 hunks)
- src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostMiscConfiguredFeatures.java (3 hunks)
- src/main/java/net/id/paradiselost/world/feature/features/JaggedOreFeature.java (1 hunks)
- src/main/java/net/id/paradiselost/world/feature/placed_features/ParadiseLostMiscPlacedFeatures.java (1 hunks)
- src/main/resources/asset_helper.py (1 hunks)
Additional Context Used
Additional comments not posted (20)
src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java (1)
13-13
: The addition of theIGNITING_TOOLS
tag is consistent with the PR's objectives and follows the correct implementation pattern for adding new item tags.src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java (1)
1-24
: The implementation ofGravityWandItem
aligns with the PR's objectives and demonstrates good coding practices by encapsulating gravity manipulation logic within theGravityTool
class.src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java (1)
14-17
: The modification to thegetFireAspect
method correctly implements the desired functionality for items tagged withIGNITING_TOOLS
, aligning with the PR's objectives.src/main/java/net/id/paradiselost/world/feature/configs/JaggedOreConfig.java (1)
1-17
: The introduction ofJaggedOreConfig
with its associatedCODEC
is correctly implemented and follows best practices for defining feature configurations in Minecraft mods.src/main/java/net/id/paradiselost/world/feature/features/JaggedOreFeature.java (1)
1-47
: The implementation ofJaggedOreFeature
correctly uses the provided configuration to generate ore formations, demonstrating good coding practices for feature generation.src/main/java/net/id/paradiselost/world/feature/ParadiseLostFeatures.java (1)
33-33
: The addition of theJAGGED_ORE
feature toParadiseLostFeatures
is consistent with the PR's objectives and follows the correct implementation pattern for adding new features.src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java (1)
81-86
: > 📝 NOTEThis review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [1-81]
The removal of
gravitite
handling logic aligns with the PR's objectives, and the remaining mixin logic is correctly implemented.src/main/java/net/id/paradiselost/world/feature/placed_features/ParadiseLostMiscPlacedFeatures.java (1)
25-30
: The addition ofHELIOLITH_BLOB
,LEVITA_BLOB
, andORE_LEVITA
placed features with their specific placement modifiers aligns with the PR's objectives and demonstrates good coding practices for defining placed features.src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java (1)
135-137
: The methodvalidForWand
checks if a block state is not in theBlockTags.NEEDS_DIAMOND_TOOL
tag to determine its validity for theGravityWandItem
. This is a straightforward and effective way to filter out blocks that require a diamond tool level, aligning with the intended functionality of theGravityWandItem
. However, consider adding a comment explaining the rationale behind this check for future maintainability.src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostMiscConfiguredFeatures.java (1)
43-47
: The addition of new configured features forheliolith_blob
,levita_blob
, andore_levita
expands the variety of world generation options in the game. The configurations for these features, such as size and frequency, are crucial for balancing gameplay. Ensure that these values have been tested in-game to achieve the desired rarity and distribution of these materials.src/main/resources/asset_helper.py (1)
4-83
: The utility scriptasset_helper.py
introduces functions for generating asset files for standard blocks, items, handheld items, log blocks, stairs blocks, and slab blocks. This script is a valuable tool for streamlining the asset creation process. However, consider adding error handling for file operations to prevent the script from crashing if there are issues with file paths or permissions. Additionally, using context managers (with
statement) for file operations can ensure that files are properly closed even if an error occurs.src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java (1)
222-226
: The addition ofHELIOLITH_BLOB
,LEVITA_BLOB
, andORE_LEVITA
to theUNDERGROUND_ORES
list aligns with the PR objectives of introducing new materials and enhancing world generation. Ensure that the correspondingPlacedFeature
instances for these new ores and blobs are correctly defined elsewhere in the codebase, including their generation patterns and conditions. This is crucial for maintaining the intended gameplay experience and balance.Verification successful
Given the lack of output from the initial script, it's necessary to broaden our search approach to verify the existence and configuration of
HELIOLITH_BLOB
,LEVITA_BLOB
, andORE_LEVITA
. Let's search the entire codebase for references to these features to gather more context.
The broader search successfully located references to
HELIOLITH_BLOB
,LEVITA_BLOB
, andORE_LEVITA
in the codebase. Specifically, it found their definitions inParadiseLostMiscPlacedFeatures.java
andParadiseLostMiscConfiguredFeatures.java
, including the configuration details for each feature. This confirms that the additions to theUNDERGROUND_ORES
list inParadiseLostBiomes.java
are supported by properly defined and configuredPlacedFeature
instances, as required for correct world generation.Based on this information, the review comment is verified as the necessary definitions and configurations for
HELIOLITH_BLOB
,LEVITA_BLOB
, andORE_LEVITA
are present and correctly implemented in the codebase.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify the definition and configuration of HELIOLITH_BLOB, LEVITA_BLOB, and ORE_LEVITA PlacedFeatures ast-grep --lang java --pattern $'PlacedFeature $$$($_, $_) { $$$ }' | grep -E 'HELIOLITH_BLOB|LEVITA_BLOB|ORE_LEVITA'Length of output: 118
Script:
#!/bin/bash # Broaden the search for HELIOLITH_BLOB, LEVITA_BLOB, and ORE_LEVITA references in the codebase rg 'HELIOLITH_BLOB|LEVITA_BLOB|ORE_LEVITA'Length of output: 2807
src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java (4)
70-70
: The addition of theLEVITA
block aligns with the PR objectives. Ensure its floating behavior functions as expected in various scenarios.
135-143
: The addition ofHELIOLITH
and its variants enriches the game's building materials. Verify that their aesthetic and functional properties are consistent with similar stone-like blocks in the game.
373-373
: The addition ofLEVITA_ORE
introduces a unique ore with gravity-defying properties. Ensure its behavior and integration with the world generation are correctly implemented.
376-376
: The modification ofREFINED_SURTRUM_BLOCK
from a FloatingBlock to a regular Block aligns with the rework of Surtrum. Verify that this change integrates well with existing gameplay mechanics and player expectations.src/main/java/net/id/paradiselost/items/ParadiseLostItems.java (4)
53-53
: The item settings methods (nightmare
,resource
,tool
,wearable
,food
,misc
,building_block
,decoration
) are well-implemented, enhancing code readability and maintainability.
54-66
: The item declarations, including the addition of new items likeLEVITA_GEM
,LEVITA_WAND
, and the application offireproof
settings toREFINED_SURTRUM
andRAW_SURTRUM
, align well with the PR objectives. The direct use ofresource()
in theadd
calls forGOLDEN_AMBER
andHELLENROSE_PETAL
simplifies the code and enhances readability.
195-303
: The block declarations, including the addition of new blocks likeHELIOLITH
,LEVITA
, andLEVITA_ORE
, as well as a comprehensive set of Heliolith-related blocks, significantly contribute to the game's aesthetic and building possibilities. The use ofbuilding_block()
in theadd
calls ensures these blocks are correctly categorized, aligning well with the PR objectives.
51-69
: > 📝 NOTEThis review was outside the diff hunks, and no overlapping diff hunk was found. Original lines [432-432]
The
add
method implementations for registering items and blocks are well-designed, providing a flexible and streamlined way to introduce new content into the game. The ability to pass additional actions for further customization is a valuable feature.
Summary by CodeRabbit
New Features
GravityWandItem
for manipulating gravity in-game.LEVITA
,HELIOLITH
(including variants), andLEVITA_ORE
.LEVITA_GEM
,LEVITA_WAND
, and fireproof settings forREFINED_SURTRUM
andRAW_SURTRUM
.JaggedOreFeature
for jagged ore structures.HELIOLITH_BLOB
,LEVITA_BLOB
, andORE_LEVITA
.Bug Fixes
gravitite
handling fromLivingEntityMixin
, affecting damage logic.Enhancements
validForWand
to check block state validity forGravityWandItem
.IGNITING_TOOLS
for specific tool handling.Tools & Utilities
asset_helper.py
for generating Minecraft asset files for the mod.