diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2025-03-16 13:41:17 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-16 13:41:17 -0500 |
| commit | b0bd992adcff71ee294dd05060e00e652f62a7b2 (patch) | |
| tree | 0a36d8b37befbc75c8c65cc2c8779c3df66bd87b /codegen/lib/code/blocks.py | |
| parent | a95408cbcc05b5bd04a084b0a286b571069206f6 (diff) | |
| download | azalea-drasl-b0bd992adcff71ee294dd05060e00e652f62a7b2.tar.xz | |
Fluid physics fixes (#210)
* start fixing code related to fluid physics
* implement force_solid for blocks
* afk pool test
Diffstat (limited to 'codegen/lib/code/blocks.py')
| -rwxr-xr-x | codegen/lib/code/blocks.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/codegen/lib/code/blocks.py b/codegen/lib/code/blocks.py index 2733093b..181ce774 100755 --- a/codegen/lib/code/blocks.py +++ b/codegen/lib/code/blocks.py @@ -12,13 +12,15 @@ BLOCKS_RS_DIR = get_dir_location('../azalea-block/src/generated.rs') # - Block: Has properties and states. -def generate_blocks(blocks_report: dict, pixlyzer_block_datas: dict, ordered_blocks: list[str]): +def generate_blocks(blocks_report: dict, pixlyzer_block_datas: dict, ordered_blocks: list[str], burger_data: dict): with open(BLOCKS_RS_DIR, 'r') as f: existing_code = f.read().splitlines() new_make_block_states_macro_code = [] new_make_block_states_macro_code.append('make_block_states! {') + burger_block_datas = burger_data[0]['blocks']['block'] + # Find properties properties = {} @@ -77,6 +79,7 @@ def generate_blocks(blocks_report: dict, pixlyzer_block_datas: dict, ordered_blo for block_id in ordered_blocks: block_data_report = blocks_report['minecraft:' + block_id] block_data_pixlyzer = pixlyzer_block_datas.get(f'minecraft:{block_id}', {}) + block_data_burger = burger_block_datas.get(block_id, {}) default_property_variants: dict[str, str] = {} for state in block_data_report['states']: @@ -129,6 +132,14 @@ def generate_blocks(blocks_report: dict, pixlyzer_block_datas: dict, ordered_blo friction = block_data_pixlyzer.get('friction') if friction != None: behavior_constructor += f'.friction({friction})' + + force_solid = None + if block_data_burger.get('force_solid_on'): + force_solid = 'true' + elif block_data_burger.get('force_solid_off'): + force_solid = 'false' + if force_solid != None: + behavior_constructor += f'.force_solid({force_solid})' # TODO: use burger to generate the blockbehavior new_make_block_states_macro_code.append( |
