From ded7e6284fc8e51e910ceb0fbeb81faa03a9a9c0 Mon Sep 17 00:00:00 2001 From: zimuya4153 Date: Thu, 26 Jun 2025 19:18:09 +0800 Subject: [PATCH] refactor: reconstructing the mod --- .github/workflows/build.yml | 2 + .github/workflows/release.yml | 2 + lang/en_US.lang | 539 +++++++++++++++++++++++++++++++++- lang/zh_CN.lang | 539 +++++++++++++++++++++++++++++++++- src/DebugStickItem.cpp | 319 +++++++++++++++++++- tooth.json | 6 +- xmake.lua | 4 +- 7 files changed, 1396 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 195e3d0..de57f65 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,6 +10,8 @@ jobs: - uses: actions/checkout@v4 - uses: xmake-io/github-action-setup-xmake@v1 + with: + xmake-version: "2.9.9" - uses: actions/cache@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ccbf541..6315efa 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,6 +10,8 @@ jobs: - uses: actions/checkout@v4 - uses: xmake-io/github-action-setup-xmake@v1 + with: + xmake-version: "2.9.9" - uses: actions/cache@v4 with: diff --git a/lang/en_US.lang b/lang/en_US.lang index 8660f8e..51abb11 100644 --- a/lang/en_US.lang +++ b/lang/en_US.lang @@ -1 +1,538 @@ -item.debug_stick.name=Debug Stick \ No newline at end of file +## Item Name +item.debug_stick.name=Debug Stick + +## State Names +state.active.name=Active §7(active) +state.age.name=Age §7(age) +state.age_bit.name=Age Bit §7(age_bit) +state.attached_bit.name=Attached Bit §7(attached_bit) +state.attachment.name=Attachment §7(attachment) +state.bamboo_leaf_size.name=Bamboo Leaf Size §7(bamboo_leaf_size) +state.bamboo_stalk_thickness.name=Bamboo Stalk Thickness §7(bamboo_stalk_thickness) +state.honey_level.name=Honey Level §7(honey_level) +state.big_dripleaf_head.name=Big Dripleaf Head §7(big_dripleaf_head) +state.big_dripleaf_tilt.name=Big Dripleaf Tilt §7(big_dripleaf_tilt) +state.bite_counter.name=Bite Counter §7(bite_counter) +state.bloom.name=Bloom §7(bloom) +state.books_stored.name=Books Stored §7(books_stored) +state.brewing_stand_slot_a_bit.name=Brewing Stand Slot A Bit §7(brewing_stand_slot_a_bit) +state.brewing_stand_slot_b_bit.name=Brewing Stand Slot B Bit §7(brewing_stand_slot_b_bit) +state.brewing_stand_slot_c_bit.name=Brewing Stand Slot C Bit §7(brewing_stand_slot_c_bit) +state.brushed_progress.name=Brushed Progress §7(brushed_progress) +state.button_pressed_bit.name=Button Pressed Bit §7(button_pressed_bit) +state.can_summon.name=Can Summon §7(can_summon) +state.candles.name=Candles §7(candles) +state.cauldron_liquid.name=Cauldron Liquid §7(cauldron_liquid) +state.cluster_count.name=Cluster Count §7(cluster_count) +state.composter_fill_level.name=Composter Fill Level §7(composter_fill_level) +state.conditional_bit.name=Conditional Bit §7(conditional_bit) +state.coral_direction.name=Coral Direction §7(coral_direction) +state.coral_fan_direction.name=Coral Fan Direction §7(coral_fan_direction) +state.covered_bit.name=Covered Bit §7(covered_bit) +state.cracked_state.name=Cracked State §7(cracked_state) +state.crafting.name=Crafting §7(crafting) +state.creaking_heart_state.name=Creaking Heart State §7(creaking_heart_state) +state.deprecated.name=Deprecated §7(deprecated) +state.allow_underwater_bit.name=Allow Underwater Bit §7(allow_underwater_bit) +state.block_light_level.name=Block Light Level §7(block_light_level) +state.chemistry_table_type.name=Chemistry Table Type §7(chemistry_table_type) +state.chisel_type.name=Chisel Type §7(chisel_type) +state.color.name=Color §7(color) +state.color_bit.name=Color Bit §7(color_bit) +state.coral_color.name=Coral Color §7(coral_color) +state.coral_hang_type_bit.name=Coral Hang Type Bit §7(coral_hang_type_bit) +state.damage.name=Damage §7(damage) +state.dirt_type.name=Dirt Type §7(dirt_type) +state.double_plant_type.name=Double Plant Type §7(double_plant_type) +state.flower_type.name=Flower Type §7(flower_type) +state.monster_egg_stone_type.name=Monster Egg Stone Type §7(monster_egg_stone_type) +state.new_leaf_type.name=New Leaf Type §7(new_leaf_type) +state.new_log_type.name=New Log Type §7(new_log_type) +state.no_drop_bit.name=No Drop Bit §7(no_drop_bit) +state.old_leaf_type.name=Old Leaf Type §7(old_leaf_type) +state.old_log_type.name=Old Log Type §7(old_log_type) +state.prismarine_block_type.name=Prismarine Block Type §7(prismarine_block_type) +state.sand_type.name=Sand Type §7(sand_type) +state.sand_stone_type.name=Sandstone Type §7(sand_stone_type) +state.sapling_type.name=Sapling Type §7(sapling_type) +state.sponge_type.name=Sponge Type §7(sponge_type) +state.stone_brick_type.name=Stone Brick Type §7(stone_brick_type) +state.stone_slab_type.name=Stone Slab Type §7(stone_slab_type) +state.stone_slab_type_2.name=Stone Slab Type 2 §7(stone_slab_type_2) +state.stone_slab_type_3.name=Stone Slab Type 3 §7(stone_slab_type_3) +state.stone_slab_type_4.name=Stone Slab Type 4 §7(stone_slab_type_4) +state.stone_type.name=Stone Type §7(stone_type) +state.stripped_bit.name=Stripped Bit §7(stripped_bit) +state.structure_void_type.name=Structure Void Type §7(structure_void_type) +state.tall_grass_type.name=Tall Grass Type §7(tall_grass_type) +state.wall_block_type.name=Wall Block Type §7(wall_block_type) +state.wood_type.name=Wood Type §7(wood_type) +state.dead_bit.name=Dead Bit §7(dead_bit) +state.direction.name=Direction §7(direction) +state.disarmed_bit.name=Disarmed Bit §7(disarmed_bit) +state.door_hinge_bit.name=Door Hinge Bit §7(door_hinge_bit) +state.drag_down.name=Drag Down §7(drag_down) +state.dripstone_thickness.name=Dripstone Thickness §7(dripstone_thickness) +state.end_portal_eye_bit.name=End Portal Eye Bit §7(end_portal_eye_bit) +state.explode_bit.name=Explode Bit §7(explode_bit) +state.extinguished.name=Extinguished §7(extinguished) +state.facing_direction.name=Facing Direction §7(facing_direction) +state.fill_level.name=Fill Level §7(fill_level) +state.growing_plant_age.name=Growing Plant Age §7(growing_plant_age) +state.growth.name=Growth §7(growth) +state.hanging.name=Hanging §7(hanging) +state.head_piece_bit.name=Head Piece Bit §7(head_piece_bit) +state.height.name=Height §7(height) +state.huge_mushroom_bits.name=Huge Mushroom Bits §7(huge_mushroom_bits) +state.in_wall_bit.name=In Wall Bit §7(in_wall_bit) +state.infiniburn_bit.name=Infiniburn Bit §7(infiniburn_bit) +state.item_frame_map_bit.name=Item Frame Map Bit §7(item_frame_map_bit) +state.item_frame_photo_bit.name=Item Frame Photo Bit §7(item_frame_photo_bit) +state.kelp_age.name=Kelp Age §7(kelp_age) +state.lever_direction.name=Lever Direction §7(lever_direction) +state.liquid_depth.name=Liquid Depth §7(liquid_depth) +state.lit.name=Lit §7(lit) +state.moisturized_amount.name=Moisturized Amount §7(moisturized_amount) +state.multi_face_direction_bits.name=Multi Face Direction Bits §7(multi_face_direction_bits) +state.natural.name=Natural §7(natural) +state.occupied_bit.name=Occupied Bit §7(occupied_bit) +state.ominous.name=Ominous §7(ominous) +state.open_bit.name=Open Bit §7(open_bit) +state.orientation.name=Orientation §7(orientation) +state.output_lit_bit.name=Output Lit Bit §7(output_lit_bit) +state.output_subtract_bit.name=Output Subtract Bit §7(output_subtract_bit) +state.pale_moss_carpet_side_east.name=Pale Moss Carpet Side East §7(pale_moss_carpet_side_east) +state.pale_moss_carpet_side_north.name=Pale Moss Carpet Side North §7(pale_moss_carpet_side_north) +state.pale_moss_carpet_side_south.name=Pale Moss Carpet Side South §7(pale_moss_carpet_side_south) +state.pale_moss_carpet_side_west.name=Pale Moss Carpet Side West §7(pale_moss_carpet_side_west) +state.persistent_bit.name=Persistent Bit §7(persistent_bit) +state.pillar_axis.name=Pillar Axis §7(pillar_axis) +state.portal_axis.name=Portal Axis §7(portal_axis) +state.powered_bit.name=Powered Bit §7(powered_bit) +state.propagule_stage.name=Propagule Stage §7(propagule_stage) +state.rail_data_bit.name=Rail Data Bit §7(rail_data_bit) +state.rail_direction.name=Rail Direction §7(rail_direction) +state.redstone_signal.name=Redstone Signal §7(redstone_signal) +state.repeater_delay.name=Repeater Delay §7(repeater_delay) +state.respawn_anchor_charge.name=Respawn Anchor Charge §7(respawn_anchor_charge) +state.rotation.name=Rotation §7(rotation) +state.sculk_sensor_phase.name=Sculk Sensor Phase §7(sculk_sensor_phase) +state.sea_grass_type.name=Sea Grass Type §7(sea_grass_type) +state.stability.name=Stability §7(stability) +state.stability_check.name=Stability Check §7(stability_check) +state.ground_sign_direction.name=Ground Sign Direction §7(ground_sign_direction) +state.structure_block_type.name=Structure Block Type §7(structure_block_type) +state.suspended_bit.name=Suspended Bit §7(suspended_bit) +state.tip.name=Tip §7(tip) +state.toggle_bit.name=Toggle Bit §7(toggle_bit) +state.top_slot_bit.name=Top Slot Bit §7(top_slot_bit) +state.torch_facing_direction.name=Torch Facing Direction §7(torch_facing_direction) +state.trial_spawner_state.name=Trial Spawner State §7(trial_spawner_state) +state.triggered_bit.name=Triggered Bit §7(triggered_bit) +state.turtle_egg_count.name=Turtle Egg Count §7(turtle_egg_count) +state.twisting_vines_age.name=Twisting Vines Age §7(twisting_vines_age) +state.update_bit.name=Update Bit §7(update_bit) +state.upper_block_bit.name=Upper Block Bit §7(upper_block_bit) +state.upside_down_bit.name=Upside Down Bit §7(upside_down_bit) +state.vault_state.name=Vault State §7(vault_state) +state.vine_direction_bits.name=Vine Direction Bits §7(vine_direction_bits) +state.wall_connection_type_east.name=Wall Connection Type East §7(wall_connection_type_east) +state.wall_connection_type_north.name=Wall Connection Type North §7(wall_connection_type_north) +state.wall_connection_type_south.name=Wall Connection Type South §7(wall_connection_type_south) +state.wall_connection_type_west.name=Wall Connection Type West §7(wall_connection_type_west) +state.wall_post_bit.name=Wall Post Bit §7(wall_post_bit) +state.weeping_vines_age.name=Weeping Vines Age §7(weeping_vines_age) +state.weirdo_direction.name=Weirdo Direction §7(weirdo_direction) + +## Enum Names +enum.AttachmentType.Standing=Standing §7(AttachmentType::Standing) +enum.AttachmentType.Hanging=Hanging §7(AttachmentType::Hanging) +enum.AttachmentType.Side=Side §7(AttachmentType::Side) +enum.AttachmentType.Multiple=Multiple §7(AttachmentType::Multiple) +enum.AttachmentType.Count=Count §7(AttachmentType::Count) + +enum.LeafSize.NoLeaves=No Leaves §7(LeafSize::NoLeaves) +enum.LeafSize.SmallLeaves=Small Leaves §7(LeafSize::SmallLeaves) +enum.LeafSize.LargeLeaves=Large Leaves §7(LeafSize::LargeLeaves) +enum.LeafSize.Count=Count §7(LeafSize::Count) + +enum.StalkThickness.Thin=Thin §7(StalkThickness::Thin) +enum.StalkThickness.Thick=Thick §7(StalkThickness::Thick) +enum.StalkThickness.Count=Count §7(StalkThickness::Count) + +enum.BigDripleafTilt.None=None §7(BigDripleafTilt::None) +enum.BigDripleafTilt.Unstable=Unstable §7(BigDripleafTilt::Unstable) +enum.BigDripleafTilt.PartialTilt=Partial Tilt §7(BigDripleafTilt::PartialTilt) +enum.BigDripleafTilt.FullTilt=Full Tilt §7(BigDripleafTilt::FullTilt) +enum.BigDripleafTilt.Count=Count §7(BigDripleafTilt::Count) + +enum.CauldronLiquidType.Water=Water §7(CauldronLiquidType::Water) +enum.CauldronLiquidType.Lava=Lava §7(CauldronLiquidType::Lava) +enum.CauldronLiquidType.PowderSnow=Powder Snow §7(CauldronLiquidType::PowderSnow) +enum.CauldronLiquidType.Count=Count §7(CauldronLiquidType::Count) + +enum.HatchLevel.NoCracks=No Cracks §7(HatchLevel::NoCracks) +enum.HatchLevel.Cracked=Cracked §7(HatchLevel::Cracked) +enum.HatchLevel.MaxCracked=Max Cracked §7(HatchLevel::MaxCracked) +enum.HatchLevel.Count=Count §7(HatchLevel::Count) + +enum.CreakingHeartState.Uprooted=Uprooted §7(CreakingHeartState::Uprooted) +enum.CreakingHeartState.Dormant=Dormant §7(CreakingHeartState::Dormant) +enum.CreakingHeartState.Awake=Awake §7(CreakingHeartState::Awake) +enum.CreakingHeartState.Count=Count §7(CreakingHeartState::Count) + +enum.ChemistryTableType.CompoundCreator=Compound Creator §7(ChemistryTableType::CompoundCreator) +enum.ChemistryTableType.MaterialReducer=Material Reducer §7(ChemistryTableType::MaterialReducer) +enum.ChemistryTableType.ElementConstructor=Element Constructor §7(ChemistryTableType::ElementConstructor) +enum.ChemistryTableType.LabTable=Lab Table §7(ChemistryTableType::LabTable) +enum.ChemistryTableType.Count=Count §7(ChemistryTableType::Count) + +enum.ChiselType.Default=Default §7(ChiselType::Default) +enum.ChiselType.Chiseled=Chiseled §7(ChiselType::Chiseled) +enum.ChiselType.Lines=Lines §7(ChiselType::Lines) +enum.ChiselType.Smooth=Smooth §7(ChiselType::Smooth) +enum.ChiselType.Count=Count §7(ChiselType::Count) + +enum.BlockColor.White=White §7(BlockColor::White) +enum.BlockColor.Orange=Orange §7(BlockColor::Orange) +enum.BlockColor.Magenta=Magenta §7(BlockColor::Magenta) +enum.BlockColor.LightBlue=Light Blue §7(BlockColor::LightBlue) +enum.BlockColor.Yellow=Yellow §7(BlockColor::Yellow) +enum.BlockColor.Lime=Lime §7(BlockColor::Lime) +enum.BlockColor.Pink=Pink §7(BlockColor::Pink) +enum.BlockColor.Gray=Gray §7(BlockColor::Gray) +enum.BlockColor.Silver=Silver §7(BlockColor::Silver) +enum.BlockColor.Cyan=Cyan §7(BlockColor::Cyan) +enum.BlockColor.Purple=Purple §7(BlockColor::Purple) +enum.BlockColor.Blue=Blue §7(BlockColor::Blue) +enum.BlockColor.Brown=Brown §7(BlockColor::Brown) +enum.BlockColor.Green=Green §7(BlockColor::Green) +enum.BlockColor.Red=Red §7(BlockColor::Red) +enum.BlockColor.Black=Black §7(BlockColor::Black) +enum.BlockColor.Count=Count §7(BlockColor::Count) + +enum.CoralColor.Blue=Blue §7(CoralColor::Blue) +enum.CoralColor.Pink=Pink §7(CoralColor::Pink) +enum.CoralColor.Purple=Purple §7(CoralColor::Purple) +enum.CoralColor.Red=Red §7(CoralColor::Red) +enum.CoralColor.Yellow=Yellow §7(CoralColor::Yellow) +enum.CoralColor.Count=Count §7(CoralColor::Count) + +enum.AnvilDamage.Undamaged=Undamaged §7(AnvilDamage::Undamaged) +enum.AnvilDamage.SlightlyDamaged=Slightly Damaged §7(AnvilDamage::SlightlyDamaged) +enum.AnvilDamage.VeryDamaged=Very Damaged §7(AnvilDamage::VeryDamaged) +enum.AnvilDamage.Broken=Broken §7(AnvilDamage::Broken) +enum.AnvilDamage.Count=Count §7(AnvilDamage::Count) + +enum.DirtType.Normal=Normal §7(DirtType::Normal) +enum.DirtType.Coarse=Coarse §7(DirtType::Coarse) +enum.DirtType.Count=Count §7(DirtType::Count) + +enum.DoublePlantType.Sunflower=Sunflower §7(DoublePlantType::Sunflower) +enum.DoublePlantType.Syringa=Syringa §7(DoublePlantType::Syringa) +enum.DoublePlantType.Grass=Grass §7(DoublePlantType::Grass) +enum.DoublePlantType.Fern=Fern §7(DoublePlantType::Fern) +enum.DoublePlantType.Rose=Rose §7(DoublePlantType::Rose) +enum.DoublePlantType.Paeonia=Paeonia §7(DoublePlantType::Paeonia) +enum.DoublePlantType.Count=Count §7(DoublePlantType::Count) + +enum.FlowerType.Poppy=Poppy §7(FlowerType::Poppy) +enum.FlowerType.Orchid=Orchid §7(FlowerType::Orchid) +enum.FlowerType.Allium=Allium §7(FlowerType::Allium) +enum.FlowerType.Houstonia=Houstonia §7(FlowerType::Houstonia) +enum.FlowerType.TulipRed=Tulip Red §7(FlowerType::TulipRed) +enum.FlowerType.TulipOrange=Tulip Orange §7(FlowerType::TulipOrange) +enum.FlowerType.TulipWhite=Tulip White §7(FlowerType::TulipWhite) +enum.FlowerType.TulipPink=Tulip Pink §7(FlowerType::TulipPink) +enum.FlowerType.Oxeye=Oxeye §7(FlowerType::Oxeye) +enum.FlowerType.Cornflower=Cornflower §7(FlowerType::Cornflower) +enum.FlowerType.LilyOfTheValley=Lily of the Valley §7(FlowerType::LilyOfTheValley) +enum.FlowerType.Count=Count §7(FlowerType::Count) + +enum.MonsterEggStoneType.Stone=Stone §7(MonsterEggStoneType::Stone) +enum.MonsterEggStoneType.Cobblestone=Cobblestone §7(MonsterEggStoneType::Cobblestone) +enum.MonsterEggStoneType.StoneBrick=Stone Brick §7(MonsterEggStoneType::StoneBrick) +enum.MonsterEggStoneType.MossyStoneBrick=Mossy Stone Brick §7(MonsterEggStoneType::MossyStoneBrick) +enum.MonsterEggStoneType.CrackedStoneBrick=Cracked Stone Brick §7(MonsterEggStoneType::CrackedStoneBrick) +enum.MonsterEggStoneType.ChiseledStoneBrick=Chiseled Stone Brick §7(MonsterEggStoneType::ChiseledStoneBrick) +enum.MonsterEggStoneType.Count=Count §7(MonsterEggStoneType::Count) + +enum.NewLeavesType.Acacia=Acacia §7(NewLeavesType::Acacia) +enum.NewLeavesType.DarkOak=Dark Oak §7(NewLeavesType::DarkOak) +enum.NewLeavesType.Count=Count §7(NewLeavesType::Count) + +enum.NewLogType.Acacia=Acacia §7(NewLogType::Acacia) +enum.NewLogType.DarkOak=Dark Oak §7(NewLogType::DarkOak) +enum.NewLogType.Count=Count §7(NewLogType::Count) + +enum.OldLeavesType.Oak=Oak §7(OldLeavesType::Oak) +enum.OldLeavesType.Spruce=Spruce §7(OldLeavesType::Spruce) +enum.OldLeavesType.Birch=Birch §7(OldLeavesType::Birch) +enum.OldLeavesType.Jungle=Jungle §7(OldLeavesType::Jungle) +enum.OldLeavesType.Count=Count §7(OldLeavesType::Count) + +enum.OldLogType.Oak=Oak §7(OldLogType::Oak) +enum.OldLogType.Spruce=Spruce §7(OldLogType::Spruce) +enum.OldLogType.Birch=Birch §7(OldLogType::Birch) +enum.OldLogType.Jungle=Jungle §7(OldLogType::Jungle) +enum.OldLogType.Count=Count §7(OldLogType::Count) + +enum.PrismarineBlockType.Default=Default §7(PrismarineBlockType::Default) +enum.PrismarineBlockType.Dark=Dark §7(PrismarineBlockType::Dark) +enum.PrismarineBlockType.Bricks=Bricks §7(PrismarineBlockType::Bricks) +enum.PrismarineBlockType.Count=Count §7(PrismarineBlockType::Count) + +enum.SandType.Normal=Normal §7(SandType::Normal) +enum.SandType.Red=Red §7(SandType::Red) +enum.SandType.Count=Count §7(SandType::Count) + +enum.SandstoneType.Default=Default §7(SandstoneType::Default) +enum.SandstoneType.Heiroglyphs=Heiroglyphs §7(SandstoneType::Heiroglyphs) +enum.SandstoneType.Cut=Cut §7(SandstoneType::Cut) +enum.SandstoneType.Smooth=Smooth §7(SandstoneType::Smooth) +enum.SandstoneType.Count=Count §7(SandstoneType::Count) + +enum.SaplingType_DEPRECATED.Default=Default §7(SaplingType_DEPRECATED::Default) +enum.SaplingType_DEPRECATED.Spruce=Spruce §7(SaplingType_DEPRECATED::Spruce) +enum.SaplingType_DEPRECATED.Birch=Birch §7(SaplingType_DEPRECATED::Birch) +enum.SaplingType_DEPRECATED.Jungle=Jungle §7(SaplingType_DEPRECATED::Jungle) +enum.SaplingType_DEPRECATED.Acacia=Acacia §7(SaplingType_DEPRECATED::Acacia) +enum.SaplingType_DEPRECATED.RoofedOak=Roofed Oak §7(SaplingType_DEPRECATED::RoofedOak) +enum.SaplingType_DEPRECATED.PaleOak=Pale Oak §7(SaplingType_DEPRECATED::PaleOak) +enum.SaplingType_DEPRECATED.Count=Count §7(SaplingType_DEPRECATED::Count) + +enum.SpongeType.Dry=Dry §7(SpongeType::Dry) +enum.SpongeType.Wet=Wet §7(SpongeType::Wet) +enum.SpongeType.Count=Count §7(SpongeType::Count) + +enum.StoneBrickType.Default=Default §7(StoneBrickType::Default) +enum.StoneBrickType.Mossy=Mossy §7(StoneBrickType::Mossy) +enum.StoneBrickType.Cracked=Cracked §7(StoneBrickType::Cracked) +enum.StoneBrickType.Chiseled=Chiseled §7(StoneBrickType::Chiseled) +enum.StoneBrickType.Smooth=Smooth §7(StoneBrickType::Smooth) +enum.StoneBrickType.Count=Count §7(StoneBrickType::Count) + +enum.StoneSlabType.SmoothStone=Smooth Stone §7(StoneSlabType::SmoothStone) +enum.StoneSlabType.Sandstone=Sandstone §7(StoneSlabType::Sandstone) +enum.StoneSlabType.Wood=Wood §7(StoneSlabType::Wood) +enum.StoneSlabType.Cobblestone=Cobblestone §7(StoneSlabType::Cobblestone) +enum.StoneSlabType.Brick=Brick §7(StoneSlabType::Brick) +enum.StoneSlabType.StoneBrick=Stone Brick §7(StoneSlabType::StoneBrick) +enum.StoneSlabType.Quartz=Quartz §7(StoneSlabType::Quartz) +enum.StoneSlabType.NetherBrick=Nether Brick §7(StoneSlabType::NetherBrick) +enum.StoneSlabType.Count=Count §7(StoneSlabType::Count) + +enum.StoneSlabType2.RedSandstone=Red Sandstone §7(StoneSlabType2::RedSandstone) +enum.StoneSlabType2.Purpur=Purpur §7(StoneSlabType2::Purpur) +enum.StoneSlabType2.PrismarineRough=Prismarine Rough §7(StoneSlabType2::PrismarineRough) +enum.StoneSlabType2.PrismarineDark=Prismarine Dark §7(StoneSlabType2::PrismarineDark) +enum.StoneSlabType2.PrismarineBrick=Prismarine Brick §7(StoneSlabType2::PrismarineBrick) +enum.StoneSlabType2.MossyCobblestone=Mossy Cobblestone §7(StoneSlabType2::MossyCobblestone) +enum.StoneSlabType2.SmoothSandstone=Smooth Sandstone §7(StoneSlabType2::SmoothSandstone) +enum.StoneSlabType2.RedNetherBrick=Red Nether Brick §7(StoneSlabType2::RedNetherBrick) +enum.StoneSlabType2.Count=Count §7(StoneSlabType2::Count) + +enum.StoneSlabType3.EndStoneBrick=End Stone Brick §7(StoneSlabType3::EndStoneBrick) +enum.StoneSlabType3.SmoothRedSandstone=Smooth Red Sandstone §7(StoneSlabType3::SmoothRedSandstone) +enum.StoneSlabType3.PolishedAndesite=Polished Andesite §7(StoneSlabType3::PolishedAndesite) +enum.StoneSlabType3.Andesite=Andesite §7(StoneSlabType3::Andesite) +enum.StoneSlabType3.Diorite=Diorite §7(StoneSlabType3::Diorite) +enum.StoneSlabType3.PolishedDiorite=Polished Diorite §7(StoneSlabType3::PolishedDiorite) +enum.StoneSlabType3.Granite=Granite §7(StoneSlabType3::Granite) +enum.StoneSlabType3.PolishedGranite=Polished Granite §7(StoneSlabType3::PolishedGranite) +enum.StoneSlabType3.Count=Count §7(StoneSlabType3::Count) + +enum.StoneSlabType4.MossyStoneBrick=Mossy Stone Brick §7(StoneSlabType4::MossyStoneBrick) +enum.StoneSlabType4.SmoothQuartz=Smooth Quartz §7(StoneSlabType4::SmoothQuartz) +enum.StoneSlabType4.Stone=Stone §7(StoneSlabType4::Stone) +enum.StoneSlabType4.CutSandstone=Cut Sandstone §7(StoneSlabType4::CutSandstone) +enum.StoneSlabType4.CutRedSandstone=Cut Red Sandstone §7(StoneSlabType4::CutRedSandstone) +enum.StoneSlabType4.Count=Count §7(StoneSlabType4::Count) + +enum.MonsterEggStoneType.Stone=Stone §7(MonsterEggStoneType::Stone) +enum.MonsterEggStoneType.Cobblestone=Cobblestone §7(MonsterEggStoneType::Cobblestone) +enum.MonsterEggStoneType.StoneBrick=Stone Brick §7(MonsterEggStoneType::StoneBrick) +enum.MonsterEggStoneType.MossyStoneBrick=Mossy Stone Brick §7(MonsterEggStoneType::MossyStoneBrick) +enum.MonsterEggStoneType.CrackedStoneBrick=Cracked Stone Brick §7(MonsterEggStoneType::CrackedStoneBrick) +enum.MonsterEggStoneType.ChiseledStoneBrick=Chiseled Stone Brick §7(MonsterEggStoneType::ChiseledStoneBrick) +enum.MonsterEggStoneType.Count=Count §7(MonsterEggStoneType::Count) + +enum.StructureVoidType.Void=Void §7(StructureVoidType::Void) +enum.StructureVoidType.Air=Air §7(StructureVoidType::Air) +enum.StructureVoidType.Count=Count §7(StructureVoidType::Count) + +enum.TallGrassType.Default=Default §7(TallGrassType::Default) +enum.TallGrassType.Tall=Tall §7(TallGrassType::Tall) +enum.TallGrassType.Fern=Fern §7(TallGrassType::Fern) +enum.TallGrassType.Snow=Snow §7(TallGrassType::Snow) +enum.TallGrassType.Count=Count §7(TallGrassType::Count) + +enum.WallBlockType.Cobblestone=Cobblestone §7(WallBlockType::Cobblestone) +enum.WallBlockType.MossyCobblestone=Mossy Cobblestone §7(WallBlockType::MossyCobblestone) +enum.WallBlockType.Granite=Granite §7(WallBlockType::Granite) +enum.WallBlockType.Diorite=Diorite §7(WallBlockType::Diorite) +enum.WallBlockType.Andesite=Andesite §7(WallBlockType::Andesite) +enum.WallBlockType.Sandstone=Sandstone §7(WallBlockType::Sandstone) +enum.WallBlockType.Brick=Brick §7(WallBlockType::Brick) +enum.WallBlockType.StoneBrick=Stone Brick §7(WallBlockType::StoneBrick) +enum.WallBlockType.MossyStoneBrick=Mossy Stone Brick §7(WallBlockType::MossyStoneBrick) +enum.WallBlockType.NetherBrick=Nether Brick §7(WallBlockType::NetherBrick) +enum.WallBlockType.EndBrick=End Brick §7(WallBlockType::EndBrick) +enum.WallBlockType.Prismarine=Prismarine §7(WallBlockType::Prismarine) +enum.WallBlockType.RedSandstone=Red Sandstone §7(WallBlockType::RedSandstone) +enum.WallBlockType.RedNetherBrick=Red Nether Brick §7(WallBlockType::RedNetherBrick) +enum.WallBlockType.Count=Count §7(WallBlockType::Count) + +enum.WoodType.Oak=Oak §7(WoodType::Oak) +enum.WoodType.Spruce=Spruce §7(WoodType::Spruce) +enum.WoodType.Birch=Birch §7(WoodType::Birch) +enum.WoodType.Jungle=Jungle §7(WoodType::Jungle) +enum.WoodType.Acacia=Acacia §7(WoodType::Acacia) +enum.WoodType.DarkOak=Dark Oak §7(WoodType::DarkOak) +enum.WoodType.Count=Count §7(WoodType::Count) + +enum.DripstoneThickness.Tip=Tip §7(DripstoneThickness::Tip) +enum.DripstoneThickness.Frustum=Frustum §7(DripstoneThickness::Frustum) +enum.DripstoneThickness.Middle=Middle §7(DripstoneThickness::Middle) +enum.DripstoneThickness.Base=Base §7(DripstoneThickness::Base) +enum.DripstoneThickness.Merge=Merge §7(DripstoneThickness::Merge) +enum.DripstoneThickness.Count=Count §7(DripstoneThickness::Count) + +enum.LeverDirection.DownEastWest=Down East West §7(LeverDirection::DownEastWest) +enum.LeverDirection.East=East §7(LeverDirection::East) +enum.LeverDirection.West=West §7(LeverDirection::West) +enum.LeverDirection.South=South §7(LeverDirection::South) +enum.LeverDirection.North=North §7(LeverDirection::North) +enum.LeverDirection.UpNorthSouth=Up North South §7(LeverDirection::UpNorthSouth) +enum.LeverDirection.UpEastWest=Up East West §7(LeverDirection::UpEastWest) +enum.LeverDirection.DownNorthSouth=Down North South §7(LeverDirection::DownNorthSouth) +enum.LeverDirection.Count=Count §7(LeverDirection::Count) + +enum.FrontAndTop.DownEast=Down East §7(FrontAndTop::DownEast) +enum.FrontAndTop.DownNorth=Down North §7(FrontAndTop::DownNorth) +enum.FrontAndTop.DownSouth=Down South §7(FrontAndTop::DownSouth) +enum.FrontAndTop.DownWest=Down West §7(FrontAndTop::DownWest) +enum.FrontAndTop.UpEast=Up East §7(FrontAndTop::UpEast) +enum.FrontAndTop.UpNorth=Up North §7(FrontAndTop::UpNorth) +enum.FrontAndTop.UpSouth=Up South §7(FrontAndTop::UpSouth) +enum.FrontAndTop.UpWest=Up West §7(FrontAndTop::UpWest) +enum.FrontAndTop.WestUp=West Up §7(FrontAndTop::WestUp) +enum.FrontAndTop.EastUp=East Up §7(FrontAndTop::EastUp) +enum.FrontAndTop.NorthUp=North Up §7(FrontAndTop::NorthUp) +enum.FrontAndTop.SouthUp=South Up §7(FrontAndTop::SouthUp) +enum.FrontAndTop.Count=Count §7(FrontAndTop::Count) + +enum.PaleMossCarpetSide.None=None §7(PaleMossCarpetSide::None) +enum.PaleMossCarpetSide.Short=Short §7(PaleMossCarpetSide::Short) +enum.PaleMossCarpetSide.Tall=Tall §7(PaleMossCarpetSide::Tall) +enum.PaleMossCarpetSide.Count=Count §7(PaleMossCarpetSide::Count) + +enum.PillarAxis.Y=Y §7(PillarAxis::Y) +enum.PillarAxis.X=X §7(PillarAxis::X) +enum.PillarAxis.Z=Z §7(PillarAxis::Z) +enum.PillarAxis.Count=Count §7(PillarAxis::Count) + +enum.PortalAxis.Unknown=Unknown §7(PortalAxis::Unknown) +enum.PortalAxis.X=X §7(PortalAxis::X) +enum.PortalAxis.Z=Z §7(PortalAxis::Z) +enum.PortalAxis.Count=Count §7(PortalAxis::Count) + +enum.SeagrassType.Default=Default §7(SeagrassType::Default) +enum.SeagrassType.DoubleTop=Double Top §7(SeagrassType::DoubleTop) +enum.SeagrassType.DoubleBot=Double Bot §7(SeagrassType::DoubleBot) +enum.SeagrassType.Count=Count §7(SeagrassType::Count) + +enum.StructureBlockType.Data=Data §7(StructureBlockType::Data) +enum.StructureBlockType.Save=Save §7(StructureBlockType::Save) +enum.StructureBlockType.Load=Load §7(StructureBlockType::Load) +enum.StructureBlockType.Corner=Corner §7(StructureBlockType::Corner) +enum.StructureBlockType.Invalid=Invalid §7(StructureBlockType::Invalid) +enum.StructureBlockType.Export=Export §7(StructureBlockType::Export) +enum.StructureBlockType.Count=Count §7(StructureBlockType::Count) + +enum.TorchFacing.Unknown=Unknown §7(TorchFacing::Unknown) +enum.TorchFacing.West=West §7(TorchFacing::West) +enum.TorchFacing.East=East §7(TorchFacing::East) +enum.TorchFacing.North=North §7(TorchFacing::North) +enum.TorchFacing.South=South §7(TorchFacing::South) +enum.TorchFacing.Top=Top §7(TorchFacing::Top) +enum.TorchFacing.Count=Count §7(TorchFacing::Count) + +enum.EggCount.OneEgg=One Egg §7(EggCount::OneEgg) +enum.EggCount.TwoEgg=Two Egg §7(EggCount::TwoEgg) +enum.EggCount.ThreeEgg=Three Egg §7(EggCount::ThreeEgg) +enum.EggCount.FourEgg=Four Egg §7(EggCount::FourEgg) +enum.EggCount.Count=Count §7(EggCount::Count) + +enum.VaultBlockState.Inactive=Inactive §7(VaultBlockState::Inactive) +enum.VaultBlockState.Active=Active §7(VaultBlockState::Active) +enum.VaultBlockState.Unlocking=Unlocking §7(VaultBlockState::Unlocking) +enum.VaultBlockState.Ejecting=Ejecting §7(VaultBlockState::Ejecting) +enum.VaultBlockState.Count=Count §7(VaultBlockState::Count) + +enum.WallConnectionType.None=None §7(WallConnectionType::None) +enum.WallConnectionType.Short=Short §7(WallConnectionType::Short) +enum.WallConnectionType.Tall=Tall §7(WallConnectionType::Tall) +enum.WallConnectionType.Count=Count §7(WallConnectionType::Count) + +enum.CandleCount.OneCandle=One Candle §7(CandleCount::OneCandle) +enum.CandleCount.TwoCandles=Two Candles §7(CandleCount::TwoCandles) +enum.CandleCount.ThreeCandles=Three Candles §7(CandleCount::ThreeCandles) +enum.CandleCount.FourCandles=Four Candles §7(CandleCount::FourCandles) +enum.CandleCount.Count=Count §7(CandleCount::Count) + +enum.CoralDirection.West=West §7(CoralDirection::West) +enum.CoralDirection.East=East §7(CoralDirection::East) +enum.CoralDirection.North=North §7(CoralDirection::North) +enum.CoralDirection.South=South §7(CoralDirection::South) + +enum.SensibleDirections.North=North §7(SensibleDirections::North) +enum.SensibleDirections.East=East §7(SensibleDirections::East) +enum.SensibleDirections.South=South §7(SensibleDirections::South) +enum.SensibleDirections.West=West §7(SensibleDirections::West) + +enum.Name.Down=Down §7(Facing::Name::Down) +enum.Name.Up=Up §7(Facing::Name::Up) +enum.Name.North=North §7(Facing::Name::North) +enum.Name.South=South §7(Facing::Name::South) +enum.Name.West=West §7(Facing::Name::West) +enum.Name.East=East §7(Facing::Name::East) +enum.Name.Max=Max §7(Facing::Name::Max) +enum.Name.NotDefined=Not Defined §7(Facing::Name::NotDefined) +enum.Name.NumCullingIds=Num Culling Ids §7(Facing::Name::NumCullingIds) + +enum.RailDirection.NorthSouth=North South §7(RailDirection::NorthSouth) +enum.RailDirection.EastWest=East West §7(RailDirection::EastWest) +enum.RailDirection.AscendingEast=Ascending East §7(RailDirection::AscendingEast) +enum.RailDirection.AscendingWest=Ascending West §7(RailDirection::AscendingWest) +enum.RailDirection.AscendingNorth=Ascending North §7(RailDirection::AscendingNorth) +enum.RailDirection.AscendingSouth=Ascending South §7(RailDirection::AscendingSouth) +enum.RailDirection.SouthEast=South East §7(RailDirection::SouthEast) +enum.RailDirection.SouthWest=South West §7(RailDirection::SouthWest) +enum.RailDirection.NorthWest=North West §7(RailDirection::NorthWest) +enum.RailDirection.NorthEast=North East §7(RailDirection::NorthEast) + +enum.Rotation.None=None §7(Facing::Rotation::None) +enum.Rotation.Ccw=Ccw §7(Facing::Rotation::Ccw) +enum.Rotation.Opp=Opp §7(Facing::Rotation::Opp) +enum.Rotation.Cw=Cw §7(Facing::Rotation::Cw) +enum.Rotation.Count=Count §7(Facing::Rotation::Count) + +enum.SculkSensorPhaseInactive=Inactive §7(SculkSensorPhaseInactive) +enum.SculkSensorPhaseActive=Active §7(SculkSensorPhaseActive) +enum.SculkSensorPhaseCooldown=Cooldown §7(SculkSensorPhaseCooldown) +enum.SculkSensorPhaseCount=Count §7(SculkSensorPhaseCount) + +enum.SpawningLogicState.Inactive=Inactive §7(SpawningLogicState::Inactive) +enum.SpawningLogicState.WaitingForPlayers=Waiting For Players §7(SpawningLogicState::WaitingForPlayers) +enum.SpawningLogicState.Active=Active §7(SpawningLogicState::Active) +enum.SpawningLogicState.WaitingForRewardEjection=Waiting For Reward Ejection §7(SpawningLogicState::WaitingForRewardEjection) +enum.SpawningLogicState.EjectingRewards=Ejecting Rewards §7(SpawningLogicState::EjectingRewards) +enum.SpawningLogicState.Cooldown=Cooldown §7(SpawningLogicState::Cooldown) +enum.SpawningLogicState.Count=Count §7(SpawningLogicState::Count) + +enum.WeirdoDirection.East=East §7(WeirdoDirection::East) +enum.WeirdoDirection.West=West §7(WeirdoDirection::West) +enum.WeirdoDirection.South=South §7(WeirdoDirection::South) +enum.WeirdoDirection.North=North §7(WeirdoDirection::North) +enum.WeirdoDirection.Undefined=Undefined §7(WeirdoDirection::Undefined) \ No newline at end of file diff --git a/lang/zh_CN.lang b/lang/zh_CN.lang index 87cc09b..21590f6 100644 --- a/lang/zh_CN.lang +++ b/lang/zh_CN.lang @@ -1 +1,538 @@ -item.debug_stick.name=调试棒 \ No newline at end of file +## 物品名 +item.debug_stick.name=调试棒 + +## 状态名 +state.active.name=激活 §7(active) +state.age.name=年龄 §7(age) +state.age_bit.name=年龄位 §7(age_bit) +state.attached_bit.name=附着位 §7(attached_bit) +state.attachment.name=附着类型 §7(attachment) +state.bamboo_leaf_size.name=竹叶大小 §7(bamboo_leaf_size) +state.bamboo_stalk_thickness.name=竹茎粗细 §7(bamboo_stalk_thickness) +state.honey_level.name=蜂蜜等级 §7(honey_level) +state.big_dripleaf_head.name=大型垂滴叶头部 §7(big_dripleaf_head) +state.big_dripleaf_tilt.name=大型垂滴叶倾斜 §7(big_dripleaf_tilt) +state.bite_counter.name=啃食计数 §7(bite_counter) +state.bloom.name=绽放 §7(bloom) +state.books_stored.name=存储书籍数 §7(books_stored) +state.brewing_stand_slot_a_bit.name=酿造台槽位A位 §7(brewing_stand_slot_a_bit) +state.brewing_stand_slot_b_bit.name=酿造台槽位B位 §7(brewing_stand_slot_b_bit) +state.brewing_stand_slot_c_bit.name=酿造台槽位C位 §7(brewing_stand_slot_c_bit) +state.brushed_progress.name=刷扫进度 §7(brushed_progress) +state.button_pressed_bit.name=按钮按下位 §7(button_pressed_bit) +state.can_summon.name=可召唤 §7(can_summon) +state.candles.name=蜡烛数 §7(candles) +state.cauldron_liquid.name=炼药锅液体 §7(cauldron_liquid) +state.cluster_count.name=簇数量 §7(cluster_count) +state.composter_fill_level.name=堆肥桶填充等级 §7(composter_fill_level) +state.conditional_bit.name=条件位 §7(conditional_bit) +state.coral_direction.name=珊瑚方向 §7(coral_direction) +state.coral_fan_direction.name=珊瑚扇方向 §7(coral_fan_direction) +state.covered_bit.name=覆盖位 §7(covered_bit) +state.cracked_state.name=裂纹状态 §7(cracked_state) +state.crafting.name=合成中 §7(crafting) +state.creaking_heart_state.name=吱响之心状态 §7(creaking_heart_state) +state.deprecated.name=已弃用 §7(deprecated) +state.allow_underwater_bit.name=允许水下位 §7(allow_underwater_bit) +state.block_light_level.name=方块光照等级 §7(block_light_level) +state.chemistry_table_type.name=化学桌类型 §7(chemistry_table_type) +state.chisel_type.name=錾制类型 §7(chisel_type) +state.color.name=颜色 §7(color) +state.color_bit.name=颜色位 §7(color_bit) +state.coral_color.name=珊瑚颜色 §7(coral_color) +state.coral_hang_type_bit.name=珊瑚悬挂类型位 §7(coral_hang_type_bit) +state.damage.name=损伤 §7(damage) +state.dirt_type.name=泥土类型 §7(dirt_type) +state.double_plant_type.name=双层植物类型 §7(double_plant_type) +state.flower_type.name=花类型 §7(flower_type) +state.monster_egg_stone_type.name=蠹虫石块类型 §7(monster_egg_stone_type) +state.new_leaf_type.name=新树叶类型 §7(new_leaf_type) +state.new_log_type.name=新原木类型 §7(new_log_type) +state.no_drop_bit.name=无掉落位 §7(no_drop_bit) +state.old_leaf_type.name=旧树叶类型 §7(old_leaf_type) +state.old_log_type.name=旧原木类型 §7(old_log_type) +state.prismarine_block_type.name=海晶石块类型 §7(prismarine_block_type) +state.sand_type.name=沙子类型 §7(sand_type) +state.sand_stone_type.name=砂岩类型 §7(sand_stone_type) +state.sapling_type.name=树苗类型 §7(sapling_type) +state.sponge_type.name=海绵类型 §7(sponge_type) +state.stone_brick_type.name=石砖类型 §7(stone_brick_type) +state.stone_slab_type.name=石台阶类型 §7(stone_slab_type) +state.stone_slab_type_2.name=石台阶类型2 §7(stone_slab_type_2) +state.stone_slab_type_3.name=石台阶类型3 §7(stone_slab_type_3) +state.stone_slab_type_4.name=石台阶类型4 §7(stone_slab_type_4) +state.stone_type.name=石头类型 §7(stone_type) +state.stripped_bit.name=去皮位 §7(stripped_bit) +state.structure_void_type.name=结构空位类型 §7(structure_void_type) +state.tall_grass_type.name=高草丛类型 §7(tall_grass_type) +state.wall_block_type.name=墙方块类型 §7(wall_block_type) +state.wood_type.name=木头类型 §7(wood_type) +state.dead_bit.name=死亡位 §7(dead_bit) +state.direction.name=方向 §7(direction) +state.disarmed_bit.name=解除武装位 §7(disarmed_bit) +state.door_hinge_bit.name=门铰链位 §7(door_hinge_bit) +state.drag_down.name=拖拽下沉 §7(drag_down) +state.dripstone_thickness.name=滴水石锥粗细 §7(dripstone_thickness) +state.end_portal_eye_bit.name=末地传送门眼位 §7(end_portal_eye_bit) +state.explode_bit.name=爆炸位 §7(explode_bit) +state.extinguished.name=已熄灭 §7(extinguished) +state.facing_direction.name=朝向 §7(facing_direction) +state.fill_level.name=填充等级 §7(fill_level) +state.growing_plant_age.name=生长中植物年龄 §7(growing_plant_age) +state.growth.name=生长阶段 §7(growth) +state.hanging.name=悬挂 §7(hanging) +state.head_piece_bit.name=头部部件位 §7(head_piece_bit) +state.height.name=高度 §7(height) +state.huge_mushroom_bits.name=巨型蘑菇位 §7(huge_mushroom_bits) +state.in_wall_bit.name=墙内位 §7(in_wall_bit) +state.infiniburn_bit.name=无限燃烧位 §7(infiniburn_bit) +state.item_frame_map_bit.name=物品展示框地图位 §7(item_frame_map_bit) +state.item_frame_photo_bit.name=物品展示框照片位 §7(item_frame_photo_bit) +state.kelp_age.name=海带年龄 §7(kelp_age) +state.lever_direction.name=拉杆方向 §7(lever_direction) +state.liquid_depth.name=液体深度 §7(liquid_depth) +state.lit.name=已点亮 §7(lit) +state.moisturized_amount.name=湿润程度 §7(moisturized_amount) +state.multi_face_direction_bits.name=多面方向位 §7(multi_face_direction_bits) +state.natural.name=自然生成 §7(natural) +state.occupied_bit.name=占用位 §7(occupied_bit) +state.ominous.name=不祥 §7(ominous) +state.open_bit.name=开关 §7(open_bit) +state.orientation.name=方位 §7(orientation) +state.output_lit_bit.name=输出点亮位 §7(output_lit_bit) +state.output_subtract_bit.name=输出减运算位 §7(output_subtract_bit) +state.pale_moss_carpet_side_east.name=苍白苔藓地毯东侧 §7(pale_moss_carpet_side_east) +state.pale_moss_carpet_side_north.name=苍白苔藓地毯北侧 §7(pale_moss_carpet_side_north) +state.pale_moss_carpet_side_south.name=苍白苔藓地毯南侧 §7(pale_moss_carpet_side_south) +state.pale_moss_carpet_side_west.name=苍白苔藓地毯西侧 §7(pale_moss_carpet_side_west) +state.persistent_bit.name=持久位 §7(persistent_bit) +state.pillar_axis.name=柱轴 §7(pillar_axis) +state.portal_axis.name=传送门轴 §7(portal_axis) +state.powered_bit.name=充能位 §7(powered_bit) +state.propagule_stage.name=繁殖体阶段 §7(propagule_stage) +state.rail_data_bit.name=铁轨数据位 §7(rail_data_bit) +state.rail_direction.name=铁轨方向 §7(rail_direction) +state.redstone_signal.name=红石信号 §7(redstone_signal) +state.repeater_delay.name=中继器延迟 §7(repeater_delay) +state.respawn_anchor_charge.name=重生锚充能 §7(respawn_anchor_charge) +state.rotation.name=旋转 §7(rotation) +state.sculk_sensor_phase.name=幽匿感测体相位 §7(sculk_sensor_phase) +state.sea_grass_type.name=海草类型 §7(sea_grass_type) +state.stability.name=稳定性 §7(stability) +state.stability_check.name=稳定性检查 §7(stability_check) +state.ground_sign_direction.name=地面告示牌方向 §7(ground_sign_direction) +state.structure_block_type.name=结构方块类型 §7(structure_block_type) +state.suspended_bit.name=悬挂位 §7(suspended_bit) +state.tip.name=尖端 §7(tip) +state.toggle_bit.name=切换位 §7(toggle_bit) +state.top_slot_bit.name=顶部槽位位 §7(top_slot_bit) +state.torch_facing_direction.name=火把朝向 §7(torch_facing_direction) +state.trial_spawner_state.name=试炼生怪砖状态 §7(trial_spawner_state) +state.triggered_bit.name=触发位 §7(triggered_bit) +state.turtle_egg_count.name=海龟蛋数量 §7(turtle_egg_count) +state.twisting_vines_age.name=缠怨藤年龄 §7(twisting_vines_age) +state.update_bit.name=更新位 §7(update_bit) +state.upper_block_bit.name=上层方块位 §7(upper_block_bit) +state.upside_down_bit.name=上下颠倒位 §7(upside_down_bit) +state.vault_state.name=贮藏室状态 §7(vault_state) +state.vine_direction_bits.name=藤蔓方向位 §7(vine_direction_bits) +state.wall_connection_type_east.name=东侧墙连接类型 §7(wall_connection_type_east) +state.wall_connection_type_north.name=北侧墙连接类型 §7(wall_connection_type_north) +state.wall_connection_type_south.name=南侧墙连接类型 §7(wall_connection_type_south) +state.wall_connection_type_west.name=西侧墙连接类型 §7(wall_connection_type_west) +state.wall_post_bit.name=墙柱位 §7(wall_post_bit) +state.weeping_vines_age.name=垂泪藤年龄 §7(weeping_vines_age) +state.weirdo_direction.name=异向 §7(weirdo_direction) + +## 枚举名 +enum.AttachmentType.Standing=站立 §7(AttachmentType::Standing) +enum.AttachmentType.Hanging=悬挂 §7(AttachmentType::Hanging) +enum.AttachmentType.Side=侧面 §7(AttachmentType::Side) +enum.AttachmentType.Multiple=多面 §7(AttachmentType::Multiple) +enum.AttachmentType.Count=总数 §7(AttachmentType::Count) + +enum.LeafSize.NoLeaves=无叶 §7(LeafSize::NoLeaves) +enum.LeafSize.SmallLeaves=小叶 §7(LeafSize::SmallLeaves) +enum.LeafSize.LargeLeaves=大叶 §7(LeafSize::LargeLeaves) +enum.LeafSize.Count=总数 §7(LeafSize::Count) + +enum.StalkThickness.Thin=细 §7(StalkThickness::Thin) +enum.StalkThickness.Thick=粗 §7(StalkThickness::Thick) +enum.StalkThickness.Count=总数 §7(StalkThickness::Count) + +enum.BigDripleafTilt.None=无 §7(BigDripleafTilt::None) +enum.BigDripleafTilt.Unstable=不稳定 §7(BigDripleafTilt::Unstable) +enum.BigDripleafTilt.PartialTilt=部分倾斜 §7(BigDripleafTilt::PartialTilt) +enum.BigDripleafTilt.FullTilt=完全倾斜 §7(BigDripleafTilt::FullTilt) +enum.BigDripleafTilt.Count=总数 §7(BigDripleafTilt::Count) + +enum.CauldronLiquidType.Water=水 §7(CauldronLiquidType::Water) +enum.CauldronLiquidType.Lava=熔岩 §7(CauldronLiquidType::Lava) +enum.CauldronLiquidType.PowderSnow=细雪 §7(CauldronLiquidType::PowderSnow) +enum.CauldronLiquidType.Count=总数 §7(CauldronLiquidType::Count) + +enum.HatchLevel.NoCracks=无裂纹 §7(HatchLevel::NoCracks) +enum.HatchLevel.Cracked=裂纹 §7(HatchLevel::Cracked) +enum.HatchLevel.MaxCracked=最大裂纹 §7(HatchLevel::MaxCracked) +enum.HatchLevel.Count=总数 §7(HatchLevel::Count) + +enum.CreakingHeartState.Uprooted=根除 §7(CreakingHeartState::Uprooted) +enum.CreakingHeartState.Dormant=休眠 §7(CreakingHeartState::Dormant) +enum.CreakingHeartState.Awake=苏醒 §7(CreakingHeartState::Awake) +enum.CreakingHeartState.Count=总数 §7(CreakingHeartState::Count) + +enum.ChemistryTableType.CompoundCreator=化合物创建器 §7(ChemistryTableType::CompoundCreator) +enum.ChemistryTableType.MaterialReducer=材料分解器 §7(ChemistryTableType::MaterialReducer) +enum.ChemistryTableType.ElementConstructor=元素构造器 §7(ChemistryTableType::ElementConstructor) +enum.ChemistryTableType.LabTable=实验台 §7(ChemistryTableType::LabTable) +enum.ChemistryTableType.Count=总数 §7(ChemistryTableType::Count) + +enum.ChiselType.Default=默认 §7(ChiselType::Default) +enum.ChiselType.Chiseled=錾制 §7(ChiselType::Chiseled) +enum.ChiselType.Lines=条纹 §7(ChiselType::Lines) +enum.ChiselType.Smooth=光滑 §7(ChiselType::Smooth) +enum.ChiselType.Count=总数 §7(ChiselType::Count) + +enum.BlockColor.White=白色 §7(BlockColor::White) +enum.BlockColor.Orange=橙色 §7(BlockColor::Orange) +enum.BlockColor.Magenta=品红色 §7(BlockColor::Magenta) +enum.BlockColor.LightBlue=淡蓝色 §7(BlockColor::LightBlue) +enum.BlockColor.Yellow=黄色 §7(BlockColor::Yellow) +enum.BlockColor.Lime=黄绿色 §7(BlockColor::Lime) +enum.BlockColor.Pink=粉红色 §7(BlockColor::Pink) +enum.BlockColor.Gray=灰色 §7(BlockColor::Gray) +enum.BlockColor.Silver=银色 §7(BlockColor::Silver) +enum.BlockColor.Cyan=青色 §7(BlockColor::Cyan) +enum.BlockColor.Purple=紫色 §7(BlockColor::Purple) +enum.BlockColor.Blue=蓝色 §7(BlockColor::Blue) +enum.BlockColor.Brown=棕色 §7(BlockColor::Brown) +enum.BlockColor.Green=绿色 §7(BlockColor::Green) +enum.BlockColor.Red=红色 §7(BlockColor::Red) +enum.BlockColor.Black=黑色 §7(BlockColor::Black) +enum.BlockColor.Count=总数 §7(BlockColor::Count) + +enum.CoralColor.Blue=蓝色 §7(CoralColor::Blue) +enum.CoralColor.Pink=粉红色 §7(CoralColor::Pink) +enum.CoralColor.Purple=紫色 §7(CoralColor::Purple) +enum.CoralColor.Red=红色 §7(CoralColor::Red) +enum.CoralColor.Yellow=黄色 §7(CoralColor::Yellow) +enum.CoralColor.Count=总数 §7(CoralColor::Count) + +enum.AnvilDamage.Undamaged=未损坏 §7(AnvilDamage::Undamaged) +enum.AnvilDamage.SlightlyDamaged=轻微损坏 §7(AnvilDamage::SlightlyDamaged) +enum.AnvilDamage.VeryDamaged=严重损坏 §7(AnvilDamage::VeryDamaged) +enum.AnvilDamage.Broken=破损 §7(AnvilDamage::Broken) +enum.AnvilDamage.Count=总数 §7(AnvilDamage::Count) + +enum.DirtType.Normal=普通 §7(DirtType::Normal) +enum.DirtType.Coarse=粗泥 §7(DirtType::Coarse) +enum.DirtType.Count=总数 §7(DirtType::Count) + +enum.DoublePlantType.Sunflower=向日葵 §7(DoublePlantType::Sunflower) +enum.DoublePlantType.Syringa=丁香 §7(DoublePlantType::Syringa) +enum.DoublePlantType.Grass=高草 §7(DoublePlantType::Grass) +enum.DoublePlantType.Fern=大型蕨 §7(DoublePlantType::Fern) +enum.DoublePlantType.Rose=玫瑰 §7(DoublePlantType::Rose) +enum.DoublePlantType.Paeonia=牡丹 §7(DoublePlantType::Paeonia) +enum.DoublePlantType.Count=总数 §7(DoublePlantType::Count) + +enum.FlowerType.Poppy=虞美人 §7(FlowerType::Poppy) +enum.FlowerType.Orchid=兰花 §7(FlowerType::Orchid) +enum.FlowerType.Allium=绒球葱 §7(FlowerType::Allium) +enum.FlowerType.Houstonia=蓝花美耳草 §7(FlowerType::Houstonia) +enum.FlowerType.TulipRed=红色郁金香 §7(FlowerType::TulipRed) +enum.FlowerType.TulipOrange=橙色郁金香 §7(FlowerType::TulipOrange) +enum.FlowerType.TulipWhite=白色郁金香 §7(FlowerType::TulipWhite) +enum.FlowerType.TulipPink=粉红色郁金香 §7(FlowerType::TulipPink) +enum.FlowerType.Oxeye=滨菊 §7(FlowerType::Oxeye) +enum.FlowerType.Cornflower=矢车菊 §7(FlowerType::Cornflower) +enum.FlowerType.LilyOfTheValley=铃兰 §7(FlowerType::LilyOfTheValley) +enum.FlowerType.Count=总数 §7(FlowerType::Count) + +enum.MonsterEggStoneType.Stone=石头 §7(MonsterEggStoneType::Stone) +enum.MonsterEggStoneType.Cobblestone=圆石 §7(MonsterEggStoneType::Cobblestone) +enum.MonsterEggStoneType.StoneBrick=石砖 §7(MonsterEggStoneType::StoneBrick) +enum.MonsterEggStoneType.MossyStoneBrick=苔石砖 §7(MonsterEggStoneType::MossyStoneBrick) +enum.MonsterEggStoneType.CrackedStoneBrick=裂纹石砖 §7(MonsterEggStoneType::CrackedStoneBrick) +enum.MonsterEggStoneType.ChiseledStoneBrick=錾制石砖 §7(MonsterEggStoneType::ChiseledStoneBrick) +enum.MonsterEggStoneType.Count=总数 §7(MonsterEggStoneType::Count) + +enum.NewLeavesType.Acacia=金合欢 §7(NewLeavesType::Acacia) +enum.NewLeavesType.DarkOak=深色橡木 §7(NewLeavesType::DarkOak) +enum.NewLeavesType.Count=总数 §7(NewLeavesType::Count) + +enum.NewLogType.Acacia=金合欢 §7(NewLogType::Acacia) +enum.NewLogType.DarkOak=深色橡木 §7(NewLogType::DarkOak) +enum.NewLogType.Count=总数 §7(NewLogType::Count) + +enum.OldLeavesType.Oak=橡木 §7(OldLeavesType::Oak) +enum.OldLeavesType.Spruce=云杉 §7(OldLeavesType::Spruce) +enum.OldLeavesType.Birch=白桦 §7(OldLeavesType::Birch) +enum.OldLeavesType.Jungle=丛林 §7(OldLeavesType::Jungle) +enum.OldLeavesType.Count=总数 §7(OldLeavesType::Count) + +enum.OldLogType.Oak=橡木 §7(OldLogType::Oak) +enum.OldLogType.Spruce=云杉 §7(OldLogType::Spruce) +enum.OldLogType.Birch=白桦 §7(OldLogType::Birch) +enum.OldLogType.Jungle=丛林 §7(OldLogType::Jungle) +enum.OldLogType.Count=总数 §7(OldLogType::Count) + +enum.PrismarineBlockType.Default=暗海晶石 §7(PrismarineBlockType::Default) +enum.PrismarineBlockType.Dark=海晶石 §7(PrismarineBlockType::Dark) +enum.PrismarineBlockType.Bricks=海晶石砖 §7(PrismarineBlockType::Bricks) +enum.PrismarineBlockType.Count=总数 §7(PrismarineBlockType::Count) + +enum.SandType.Normal=普通 §7(SandType::Normal) +enum.SandType.Red=红沙 §7(SandType::Red) +enum.SandType.Count=总数 §7(SandType::Count) + +enum.SandstoneType.Default=普通 §7(SandstoneType::Default) +enum.SandstoneType.Heiroglyphs=錾制 §7(SandstoneType::Heiroglyphs) +enum.SandstoneType.Cut=切制 §7(SandstoneType::Cut) +enum.SandstoneType.Smooth=光滑 §7(SandstoneType::Smooth) +enum.SandstoneType.Count=总数 §7(SandstoneType::Count) + +enum.SaplingType_DEPRECATED.Default=橡木 §7(SaplingType_DEPRECATED::Default) +enum.SaplingType_DEPRECATED.Spruce=云杉 §7(SaplingType_DEPRECATED::Spruce) +enum.SaplingType_DEPRECATED.Birch=白桦 §7(SaplingType_DEPRECATED::Birch) +enum.SaplingType_DEPRECATED.Jungle=丛林 §7(SaplingType_DEPRECATED::Jungle) +enum.SaplingType_DEPRECATED.Acacia=金合欢 §7(SaplingType_DEPRECATED::Acacia) +enum.SaplingType_DEPRECATED.RoofedOak=深色橡木 §7(SaplingType_DEPRECATED::RoofedOak) +enum.SaplingType_DEPRECATED.PaleOak=樱花 §7(SaplingType_DEPRECATED::PaleOak) +enum.SaplingType_DEPRECATED.Count=总数 §7(SaplingType_DEPRECATED::Count) + +enum.SpongeType.Dry=干 §7(SpongeType::Dry) +enum.SpongeType.Wet=湿 §7(SpongeType::Wet) +enum.SpongeType.Count=总数 §7(SpongeType::Count) + +enum.StoneBrickType.Default=普通 §7(StoneBrickType::Default) +enum.StoneBrickType.Mossy=苔石 §7(StoneBrickType::Mossy) +enum.StoneBrickType.Cracked=裂纹 §7(StoneBrickType::Cracked) +enum.StoneBrickType.Chiseled=錾制 §7(StoneBrickType::Chiseled) +enum.StoneBrickType.Smooth=光滑 §7(StoneBrickType::Smooth) +enum.StoneBrickType.Count=总数 §7(StoneBrickType::Count) + +enum.StoneSlabType.SmoothStone=平滑石头 §7(StoneSlabType::SmoothStone) +enum.StoneSlabType.Sandstone=砂岩 §7(StoneSlabType::Sandstone) +enum.StoneSlabType.Wood=木 §7(StoneSlabType::Wood) +enum.StoneSlabType.Cobblestone=圆石 §7(StoneSlabType::Cobblestone) +enum.StoneSlabType.Brick=砖 §7(StoneSlabType::Brick) +enum.StoneSlabType.StoneBrick=石砖 §7(StoneSlabType::StoneBrick) +enum.StoneSlabType.Quartz=石英 §7(StoneSlabType::Quartz) +enum.StoneSlabType.NetherBrick=下界砖 §7(StoneSlabType::NetherBrick) +enum.StoneSlabType.Count=总数 §7(StoneSlabType::Count) + +enum.StoneSlabType2.RedSandstone=红砂岩 §7(StoneSlabType2::RedSandstone) +enum.StoneSlabType2.Purpur=紫珀 §7(StoneSlabType2::Purpur) +enum.StoneSlabType2.PrismarineRough=暗海晶石 §7(StoneSlabType2::PrismarineRough) +enum.StoneSlabType2.PrismarineDark=海晶石 §7(StoneSlabType2::PrismarineDark) +enum.StoneSlabType2.PrismarineBrick=海晶石砖 §7(StoneSlabType2::PrismarineBrick) +enum.StoneSlabType2.MossyCobblestone=苔石 §7(StoneSlabType2::MossyCobblestone) +enum.StoneSlabType2.SmoothSandstone=平滑砂岩 §7(StoneSlabType2::SmoothSandstone) +enum.StoneSlabType2.RedNetherBrick=红下界砖 §7(StoneSlabType2::RedNetherBrick) +enum.StoneSlabType2.Count=总数 §7(StoneSlabType2::Count) + +enum.StoneSlabType3.EndStoneBrick=末地石砖 §7(StoneSlabType3::EndStoneBrick) +enum.StoneSlabType3.SmoothRedSandstone=平滑红砂岩 §7(StoneSlabType3::SmoothRedSandstone) +enum.StoneSlabType3.PolishedAndesite=磨制安山岩 §7(StoneSlabType3::PolishedAndesite) +enum.StoneSlabType3.Andesite=安山岩 §7(StoneSlabType3::Andesite) +enum.StoneSlabType3.Diorite=闪长岩 §7(StoneSlabType3::Diorite) +enum.StoneSlabType3.PolishedDiorite=磨制闪长岩 §7(StoneSlabType3::PolishedDiorite) +enum.StoneSlabType3.Granite=花岗岩 §7(StoneSlabType3::Granite) +enum.StoneSlabType3.PolishedGranite=磨制花岗岩 §7(StoneSlabType3::PolishedGranite) +enum.StoneSlabType3.Count=总数 §7(StoneSlabType3::Count) + +enum.StoneSlabType4.MossyStoneBrick=苔石砖 §7(StoneSlabType4::MossyStoneBrick) +enum.StoneSlabType4.SmoothQuartz=平滑石英 §7(StoneSlabType4::SmoothQuartz) +enum.StoneSlabType4.Stone=石头 §7(StoneSlabType4::Stone) +enum.StoneSlabType4.CutSandstone=切制砂岩 §7(StoneSlabType4::CutSandstone) +enum.StoneSlabType4.CutRedSandstone=切制红砂岩 §7(StoneSlabType4::CutRedSandstone) +enum.StoneSlabType4.Count=总数 §7(StoneSlabType4::Count) + +enum.MonsterEggStoneType.Stone=石头 §7(MonsterEggStoneType::Stone) +enum.MonsterEggStoneType.Cobblestone=圆石 §7(MonsterEggStoneType::Cobblestone) +enum.MonsterEggStoneType.StoneBrick=石砖 §7(MonsterEggStoneType::StoneBrick) +enum.MonsterEggStoneType.MossyStoneBrick=苔石砖 §7(MonsterEggStoneType::MossyStoneBrick) +enum.MonsterEggStoneType.CrackedStoneBrick=裂纹石砖 §7(MonsterEggStoneType::CrackedStoneBrick) +enum.MonsterEggStoneType.ChiseledStoneBrick=錾制石砖 §7(MonsterEggStoneType::ChiseledStoneBrick) +enum.MonsterEggStoneType.Count=总数 §7(MonsterEggStoneType::Count) + +enum.StructureVoidType.Void=空 §7(StructureVoidType::Void) +enum.StructureVoidType.Air=空气 §7(StructureVoidType::Air) +enum.StructureVoidType.Count=总数 §7(StructureVoidType::Count) + +enum.TallGrassType.Default=默认 §7(TallGrassType::Default) +enum.TallGrassType.Tall=高 §7(TallGrassType::Tall) +enum.TallGrassType.Fern=蕨 §7(TallGrassType::Fern) +enum.TallGrassType.Snow=覆雪 §7(TallGrassType::Snow) +enum.TallGrassType.Count=总数 §7(TallGrassType::Count) + +enum.WallBlockType.Cobblestone=圆石 §7(WallBlockType::Cobblestone) +enum.WallBlockType.MossyCobblestone=苔石 §7(WallBlockType::MossyCobblestone) +enum.WallBlockType.Granite=花岗岩 §7(WallBlockType::Granite) +enum.WallBlockType.Diorite=闪长岩 §7(WallBlockType::Diorite) +enum.WallBlockType.Andesite=安山岩 §7(WallBlockType::Andesite) +enum.WallBlockType.Sandstone=砂岩 §7(WallBlockType::Sandstone) +enum.WallBlockType.Brick=砖 §7(WallBlockType::Brick) +enum.WallBlockType.StoneBrick=石砖 §7(WallBlockType::StoneBrick) +enum.WallBlockType.MossyStoneBrick=苔石砖 §7(WallBlockType::MossyStoneBrick) +enum.WallBlockType.NetherBrick=下界砖 §7(WallBlockType::NetherBrick) +enum.WallBlockType.EndBrick=末地石砖 §7(WallBlockType::EndBrick) +enum.WallBlockType.Prismarine=海晶石 §7(WallBlockType::Prismarine) +enum.WallBlockType.RedSandstone=红砂岩 §7(WallBlockType::RedSandstone) +enum.WallBlockType.RedNetherBrick=红下界砖 §7(WallBlockType::RedNetherBrick) +enum.WallBlockType.Count=总数 §7(WallBlockType::Count) + +enum.WoodType.Oak=橡木 §7(WoodType::Oak) +enum.WoodType.Spruce=云杉 §7(WoodType::Spruce) +enum.WoodType.Birch=白桦 §7(WoodType::Birch) +enum.WoodType.Jungle=丛林 §7(WoodType::Jungle) +enum.WoodType.Acacia=金合欢 §7(WoodType::Acacia) +enum.WoodType.DarkOak=深色橡木 §7(WoodType::DarkOak) +enum.WoodType.Count=总数 §7(WoodType::Count) + +enum.DripstoneThickness.Tip=尖端 §7(DripstoneThickness::Tip) +enum.DripstoneThickness.Frustum=截锥 §7(DripstoneThickness::Frustum) +enum.DripstoneThickness.Middle=中部 §7(DripstoneThickness::Middle) +enum.DripstoneThickness.Base=基部 §7(DripstoneThickness::Base) +enum.DripstoneThickness.Merge=合并 §7(DripstoneThickness::Merge) +enum.DripstoneThickness.Count=总数 §7(DripstoneThickness::Count) + +enum.LeverDirection.DownEastWest=下东西向 §7(LeverDirection::DownEastWest) +enum.LeverDirection.East=东 §7(LeverDirection::East) +enum.LeverDirection.West=西 §7(LeverDirection::West) +enum.LeverDirection.South=南 §7(LeverDirection::South) +enum.LeverDirection.North=北 §7(LeverDirection::North) +enum.LeverDirection.UpNorthSouth=上南北向 §7(LeverDirection::UpNorthSouth) +enum.LeverDirection.UpEastWest=上东西向 §7(LeverDirection::UpEastWest) +enum.LeverDirection.DownNorthSouth=下南北向 §7(LeverDirection::DownNorthSouth) +enum.LeverDirection.Count=总数 §7(LeverDirection::Count) + +enum.FrontAndTop.DownEast=下东 §7(FrontAndTop::DownEast) +enum.FrontAndTop.DownNorth=下北 §7(FrontAndTop::DownNorth) +enum.FrontAndTop.DownSouth=下南 §7(FrontAndTop::DownSouth) +enum.FrontAndTop.DownWest=下西 §7(FrontAndTop::DownWest) +enum.FrontAndTop.UpEast=上东 §7(FrontAndTop::UpEast) +enum.FrontAndTop.UpNorth=上北 §7(FrontAndTop::UpNorth) +enum.FrontAndTop.UpSouth=上南 §7(FrontAndTop::UpSouth) +enum.FrontAndTop.UpWest=上西 §7(FrontAndTop::UpWest) +enum.FrontAndTop.WestUp=西上 §7(FrontAndTop::WestUp) +enum.FrontAndTop.EastUp=东上 §7(FrontAndTop::EastUp) +enum.FrontAndTop.NorthUp=北上 §7(FrontAndTop::NorthUp) +enum.FrontAndTop.SouthUp=南上 §7(FrontAndTop::SouthUp) +enum.FrontAndTop.Count=总数 §7(FrontAndTop::Count) + +enum.PaleMossCarpetSide.None=无 §7(PaleMossCarpetSide::None) +enum.PaleMossCarpetSide.Short=短 §7(PaleMossCarpetSide::Short) +enum.PaleMossCarpetSide.Tall=高 §7(PaleMossCarpetSide::Tall) +enum.PaleMossCarpetSide.Count=总数 §7(PaleMossCarpetSide::Count) + +enum.PillarAxis.Y=Y轴 §7(PillarAxis::Y) +enum.PillarAxis.X=X轴 §7(PillarAxis::X) +enum.PillarAxis.Z=Z轴 §7(PillarAxis::Z) +enum.PillarAxis.Count=总数 §7(PillarAxis::Count) + +enum.PortalAxis.Unknown=未知 §7(PortalAxis::Unknown) +enum.PortalAxis.X=X轴 §7(PortalAxis::X) +enum.PortalAxis.Z=Z轴 §7(PortalAxis::Z) +enum.PortalAxis.Count=总数 §7(PortalAxis::Count) + +enum.SeagrassType.Default=默认 §7(SeagrassType::Default) +enum.SeagrassType.DoubleTop=双层顶 §7(SeagrassType::DoubleTop) +enum.SeagrassType.DoubleBot=双层底 §7(SeagrassType::DoubleBot) +enum.SeagrassType.Count=总数 §7(SeagrassType::Count) + +enum.StructureBlockType.Data=数据 §7(StructureBlockType::Data) +enum.StructureBlockType.Save=保存 §7(StructureBlockType::Save) +enum.StructureBlockType.Load=加载 §7(StructureBlockType::Load) +enum.StructureBlockType.Corner=角落 §7(StructureBlockType::Corner) +enum.StructureBlockType.Invalid=无效 §7(StructureBlockType::Invalid) +enum.StructureBlockType.Export=导出 §7(StructureBlockType::Export) +enum.StructureBlockType.Count=总数 §7(StructureBlockType::Count) + +enum.TorchFacing.Unknown=未知 §7(TorchFacing::Unknown) +enum.TorchFacing.West=西 §7(TorchFacing::West) +enum.TorchFacing.East=东 §7(TorchFacing::East) +enum.TorchFacing.North=北 §7(TorchFacing::North) +enum.TorchFacing.South=南 §7(TorchFacing::South) +enum.TorchFacing.Top=顶 §7(TorchFacing::Top) +enum.TorchFacing.Count=总数 §7(TorchFacing::Count) + +enum.EggCount.OneEgg=单蛋 §7(EggCount::OneEgg) +enum.EggCount.TwoEgg=双蛋 §7(EggCount::TwoEgg) +enum.EggCount.ThreeEgg=三蛋 §7(EggCount::ThreeEgg) +enum.EggCount.FourEgg=四蛋 §7(EggCount::FourEgg) +enum.EggCount.Count=总数 §7(EggCount::Count) + +enum.VaultBlockState.Inactive=未激活 §7(VaultBlockState::Inactive) +enum.VaultBlockState.Active=激活 §7(VaultBlockState::Active) +enum.VaultBlockState.Unlocking=解锁中 §7(VaultBlockState::Unlocking) +enum.VaultBlockState.Ejecting=弹出中 §7(VaultBlockState::Ejecting) +enum.VaultBlockState.Count=总数 §7(VaultBlockState::Count) + +enum.WallConnectionType.None=无 §7(WallConnectionType::None) +enum.WallConnectionType.Short=短 §7(WallConnectionType::Short) +enum.WallConnectionType.Tall=高 §7(WallConnectionType::Tall) +enum.WallConnectionType.Count=总数 §7(WallConnectionType::Count) + +enum.CandleCount.OneCandle=单烛 §7(CandleCount::OneCandle) +enum.CandleCount.TwoCandles=双烛 §7(CandleCount::TwoCandles) +enum.CandleCount.ThreeCandles=三烛 §7(CandleCount::ThreeCandles) +enum.CandleCount.FourCandles=四烛 §7(CandleCount::FourCandles) +enum.CandleCount.Count=总数 §7(CandleCount::Count) + +enum.CoralDirection.West=西 §7(CoralDirection::West) +enum.CoralDirection.East=东 §7(CoralDirection::East) +enum.CoralDirection.North=北 §7(CoralDirection::North) +enum.CoralDirection.South=南 §7(CoralDirection::South) + +enum.SensibleDirections.North=北 §7(SensibleDirections::North) +enum.SensibleDirections.East=东 §7(SensibleDirections::East) +enum.SensibleDirections.South=南 §7(SensibleDirections::South) +enum.SensibleDirections.West=西 §7(SensibleDirections::West) + +enum.Name.Down=下 §7(Facing::Name::Down) +enum.Name.Up=上 §7(Facing::Name::Up) +enum.Name.North=北 §7(Facing::Name::North) +enum.Name.South=南 §7(Facing::Name::South) +enum.Name.West=西 §7(Facing::Name::West) +enum.Name.East=东 §7(Facing::Name::East) +enum.Name.Max=最大 §7(Facing::Name::Max) +enum.Name.NotDefined=未定义 §7(Facing::Name::NotDefined) +enum.Name.NumCullingIds=剔除ID数 §7(Facing::Name::NumCullingIds) + +enum.RailDirection.NorthSouth=南北 §7(RailDirection::NorthSouth) +enum.RailDirection.EastWest=东西 §7(RailDirection::EastWest) +enum.RailDirection.AscendingEast=东上坡 §7(RailDirection::AscendingEast) +enum.RailDirection.AscendingWest=西上坡 §7(RailDirection::AscendingWest) +enum.RailDirection.AscendingNorth=北上坡 §7(RailDirection::AscendingNorth) +enum.RailDirection.AscendingSouth=南上坡 §7(RailDirection::AscendingSouth) +enum.RailDirection.SouthEast=东南 §7(RailDirection::SouthEast) +enum.RailDirection.SouthWest=西南 §7(RailDirection::SouthWest) +enum.RailDirection.NorthWest=西北 §7(RailDirection::NorthWest) +enum.RailDirection.NorthEast=东北 §7(RailDirection::NorthEast) + +enum.Rotation.None=无 §7(Facing::Rotation::None) +enum.Rotation.Ccw=逆时针 §7(Facing::Rotation::Ccw) +enum.Rotation.Opp=相对 §7(Facing::Rotation::Opp) +enum.Rotation.Cw=顺时针 §7(Facing::Rotation::Cw) +enum.Rotation.Count=总数 §7(Facing::Rotation::Count) + +enum.SculkSensorPhaseInactive=未激活 §7(SculkSensorPhaseInactive) +enum.SculkSensorPhaseActive=激活 §7(SculkSensorPhaseActive) +enum.SculkSensorPhaseCooldown=冷却 §7(SculkSensorPhaseCooldown) +enum.SculkSensorPhaseCount=总数 §7(SculkSensorPhaseCount) + +enum.SpawningLogicState.Inactive=未激活 §7(SpawningLogicState::Inactive) +enum.SpawningLogicState.WaitingForPlayers=等待玩家 §7(SpawningLogicState::WaitingForPlayers) +enum.SpawningLogicState.Active=激活 §7(SpawningLogicState::Active) +enum.SpawningLogicState.WaitingForRewardEjection=等待奖励弹出 §7(SpawningLogicState::WaitingForRewardEjection) +enum.SpawningLogicState.EjectingRewards=弹出奖励 §7(SpawningLogicState::EjectingRewards) +enum.SpawningLogicState.Cooldown=冷却 §7(SpawningLogicState::Cooldown) +enum.SpawningLogicState.Count=总数 §7(SpawningLogicState::Count) + +enum.WeirdoDirection.East=东 §7(WeirdoDirection::East) +enum.WeirdoDirection.West=西 §7(WeirdoDirection::West) +enum.WeirdoDirection.South=南 §7(WeirdoDirection::South) +enum.WeirdoDirection.North=北 §7(WeirdoDirection::North) +enum.WeirdoDirection.Undefined=未定义 §7(WeirdoDirection::Undefined) \ No newline at end of file diff --git a/src/DebugStickItem.cpp b/src/DebugStickItem.cpp index 95a634a..e40ad12 100644 --- a/src/DebugStickItem.cpp +++ b/src/DebugStickItem.cpp @@ -1,21 +1,50 @@ +#include +#include #include #include #include #include +#include +#include #include #include +#include +#include +#include #include -#include -#include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include namespace DebugStick { class DebugStickItem : public gmlib::mod::ICustomItem { public: - DebugStickItem() : ICustomItem(VanillaItemNames::DebugStick()){} + enum class BlockUpdateFlag : uchar { + None = 0, + Neighbors = 1 << 0, + Network = 1 << 1, + NoGraphic = 1 << 2, + Priority = 1 << 3, + ForceNoticeListener = 1 << 4, + All = Neighbors | Network, // default value + AllPriority = All | Priority, + }; + +public: + DebugStickItem() : ICustomItem(VanillaItemNames::DebugStick()) {} uint8_t getItemMaxStackSize() const override { return 1; } @@ -35,11 +64,285 @@ public: it->second->cancel(); } mTimer[&player] = ll::thread::ServerThreadExecutor::getDefault().executeAfter( - [&player, pos]() -> void { // - auto& region = player.getDimensionBlockSource(); - auto& oldBlock = region.getBlock(pos); - auto* newBlock = oldBlock.getLegacyBlock().getNextBlockPermutation(oldBlock); - if (newBlock) region.setBlock(pos, *newBlock, 3, nullptr, &player); + [&player, pos]() -> void { + static ll::DenseMap> mEditBlocks; + static auto mStatesHandler = []() { + ll::DenseMap> states; + + auto handlerFunc = [&](T const& state) { + using Type = std::remove_cvref_t; + + if constexpr (std::is_same_v) { + states[&state] = [&state](gmlib::ui::CustomForm& form, Block const& block) -> void { + auto oldValue = *block.getState(state); + form.appendToggle( + fmt::format("state.{0}.name", state.mName->getString()), + oldValue, + [oldValue, &state](Player& player, bool newValue) -> void { + if (oldValue == newValue) return; + if (auto block = mEditBlocks[&player].second->setState(state, newValue); + block) { + mEditBlocks[&player].second = block.as_ptr(); + } + } + ); + }; + } else if constexpr (std::is_integral_v) { + states[&state] = [&state](gmlib::ui::CustomForm& form, Block const& block) -> void { + auto oldValue = std::to_string(*block.getState(state)); + form.appendInput( + fmt::format("state.{0}.name", state.mName->getString()), + {}, + oldValue, + [oldValue, &state](Player& player, std::string const& newValue) -> void { + if (oldValue == newValue) return; + if (auto result = ll::string_utils::svtonum(newValue, nullptr, 10); + result) { + if (auto block = mEditBlocks[&player].second->setState(state, *result); + block) { + mEditBlocks[&player].second = block.as_ptr(); + } + } + } + ); + }; + } else if constexpr (std::is_enum_v) { + states[&state] = [&state](gmlib::ui::CustomForm& form, Block const& block) -> void { + // clang-format off + static auto enumMap = magic_enum::enum_values() | std::ranges::to(); + static auto names = + enumMap + | std::views::transform([](auto sv) { + return fmt::format( + "%enum.{0}.{1}", + ll::reflection::type_stem_name_v, + magic_enum::enum_name(sv) + ); + }) + | std::ranges::to(); + + auto oldValue = std::find( + enumMap.begin(), + enumMap.end(), + static_cast(*block.getState(state)) + ) - enumMap.begin(); + // clang-format on + + form.appendDropdown( + fmt::format("state.{0}.name", state.mName->getString()), + names, + oldValue, + [oldValue, &state](Player& player, int64 value) -> void { + if (oldValue == value) return; + // clang-format off + if ( + auto block = mEditBlocks[&player].second->setState( + state, + static_cast(enumMap.at(value)) + ); block + ) { + mEditBlocks[&player].second = block.as_ptr(); + } + // clang-format on + } + ); + }; + } else { + static_assert(ll::traits::always_false, "Unsupported state type"); + } + }; + + { + handlerFunc(VanillaStates::Active()); + handlerFunc(VanillaStates::Age()); + handlerFunc(VanillaStates::AgeBit()); + handlerFunc(VanillaStates::AttachedBit()); + handlerFunc(VanillaStates::Attachment()); + handlerFunc(VanillaStates::BambooLeafSize()); + handlerFunc(VanillaStates::BambooThickness()); + handlerFunc(VanillaStates::BeehiveHoneyLevel()); + handlerFunc(VanillaStates::BigDripleafHead()); + handlerFunc(VanillaStates::BigDripleafTilt()); + handlerFunc(VanillaStates::BiteCounter()); + handlerFunc(VanillaStates::Bloom()); + handlerFunc(VanillaStates::BookshelfOccupiedSlots()); + handlerFunc(VanillaStates::BrewingStandSlotABit()); + handlerFunc(VanillaStates::BrewingStandSlotBBit()); + handlerFunc(VanillaStates::BrewingStandSlotCBit()); + handlerFunc(VanillaStates::BrushedProgress()); + handlerFunc(VanillaStates::ButtonPressedBit()); + handlerFunc(VanillaStates::CanSummon()); + handlerFunc(reinterpret_cast const&>(VanillaStates::Candles())); + handlerFunc(VanillaStates::CauldronLiquid()); + handlerFunc(VanillaStates::ClusterCount()); + handlerFunc(VanillaStates::ComposterFillLevel()); + handlerFunc(VanillaStates::ConditionalBit()); + handlerFunc( + reinterpret_cast const&>(VanillaStates::CoralDirection()) + ); + handlerFunc(VanillaStates::CoralFanDirection()); + handlerFunc(VanillaStates::CoveredBit()); + handlerFunc(VanillaStates::CrackedState()); + handlerFunc(VanillaStates::Crafting()); + handlerFunc(VanillaStates::CreakingHeartState()); + handlerFunc(VanillaStates::DEPRECATED()); + handlerFunc(VanillaStates::DEPRECATED_AllowUnderwaterBit()); + handlerFunc(VanillaStates::DEPRECATED_BlockLightLevel()); + handlerFunc(VanillaStates::DEPRECATED_ChemistryTableType()); + handlerFunc(VanillaStates::DEPRECATED_ChiselType()); + handlerFunc(VanillaStates::DEPRECATED_Color()); + handlerFunc(VanillaStates::DEPRECATED_ColorBit()); + handlerFunc(VanillaStates::DEPRECATED_CoralColor()); + handlerFunc(VanillaStates::DEPRECATED_CoralHangTypeBit()); + handlerFunc(VanillaStates::DEPRECATED_Damage()); + handlerFunc(VanillaStates::DEPRECATED_DirtType()); + handlerFunc(VanillaStates::DEPRECATED_DoublePlantType()); + handlerFunc(VanillaStates::DEPRECATED_FlowerType()); + handlerFunc(VanillaStates::DEPRECATED_MonsterEggStoneType()); + handlerFunc(VanillaStates::DEPRECATED_NewLeavesType()); + handlerFunc(VanillaStates::DEPRECATED_NewLogType()); + handlerFunc(VanillaStates::DEPRECATED_NoDropBit()); + handlerFunc(VanillaStates::DEPRECATED_OldLeavesType()); + handlerFunc(VanillaStates::DEPRECATED_OldLogType()); + handlerFunc(VanillaStates::DEPRECATED_PrismarineBlockType()); + handlerFunc(VanillaStates::DEPRECATED_SandType()); + handlerFunc(VanillaStates::DEPRECATED_SandstoneType()); + handlerFunc(VanillaStates::DEPRECATED_SaplingType()); + handlerFunc(VanillaStates::DEPRECATED_SpongeType()); + handlerFunc(VanillaStates::DEPRECATED_StoneBrickType()); + handlerFunc(VanillaStates::DEPRECATED_StoneSlabType()); + handlerFunc(VanillaStates::DEPRECATED_StoneSlabType2()); + handlerFunc(VanillaStates::DEPRECATED_StoneSlabType3()); + handlerFunc(VanillaStates::DEPRECATED_StoneSlabType4()); + handlerFunc(VanillaStates::DEPRECATED_StoneType()); + handlerFunc(VanillaStates::DEPRECATED_StrippedBit()); + handlerFunc(VanillaStates::DEPRECATED_StructureVoidType()); + handlerFunc(VanillaStates::DEPRECATED_TallGrassType()); + handlerFunc(VanillaStates::DEPRECATED_WallBlockType()); + handlerFunc(VanillaStates::DEPRECATED_WoodType()); + handlerFunc(VanillaStates::DeadBit()); + handlerFunc( + reinterpret_cast const&>(VanillaStates::Direction()) + ); + handlerFunc(VanillaStates::DisarmedBit()); + handlerFunc(VanillaStates::DoorHingeBit()); + handlerFunc(VanillaStates::DragDown()); + handlerFunc(VanillaStates::DripstoneThickness()); + handlerFunc(VanillaStates::EndPortalEyeBit()); + handlerFunc(VanillaStates::ExplodeBit()); + handlerFunc(VanillaStates::Extinguished()); + handlerFunc( + reinterpret_cast const&>(VanillaStates::FacingDirection()) + ); + handlerFunc(VanillaStates::FillLevel()); + handlerFunc(VanillaStates::GrowingPlantAge()); + handlerFunc(VanillaStates::Growth()); + handlerFunc(VanillaStates::HangingBit()); + handlerFunc(VanillaStates::HeadPieceBit()); + handlerFunc(VanillaStates::Height()); + handlerFunc(VanillaStates::HugeMushroomBits()); + handlerFunc(VanillaStates::InWallBit()); + handlerFunc(VanillaStates::InfiniburnBit()); + handlerFunc(VanillaStates::ItemFrameMapBit()); + handlerFunc(VanillaStates::ItemFramePhotoBit()); + handlerFunc(VanillaStates::KelpAge()); + handlerFunc(VanillaStates::LeverDirection()); + handlerFunc(VanillaStates::LiquidDepth()); + handlerFunc(VanillaStates::Lit()); + handlerFunc(VanillaStates::MoisturizedAmount()); + handlerFunc(VanillaStates::MultiFaceDirectionBits()); + handlerFunc(VanillaStates::Natural()); + handlerFunc(VanillaStates::OccupiedBit()); + handlerFunc(VanillaStates::Ominous()); + handlerFunc(VanillaStates::OpenBit()); + handlerFunc(VanillaStates::Orientation()); + handlerFunc(VanillaStates::OutputLitBit()); + handlerFunc(VanillaStates::OutputSubtractBit()); + handlerFunc(VanillaStates::PaleMossCarpetSideEast()); + handlerFunc(VanillaStates::PaleMossCarpetSideNorth()); + handlerFunc(VanillaStates::PaleMossCarpetSideSouth()); + handlerFunc(VanillaStates::PaleMossCarpetSideWest()); + handlerFunc(VanillaStates::PersistentBit()); + handlerFunc(VanillaStates::PillarAxis()); + handlerFunc(VanillaStates::PortalAxis()); + handlerFunc(VanillaStates::PoweredBit()); + handlerFunc(VanillaStates::PropaguleStage()); + handlerFunc(VanillaStates::RailDataBit()); + handlerFunc( + reinterpret_cast const&>(VanillaStates::RailDirection()) + ); + handlerFunc(VanillaStates::RedstoneSignal()); + handlerFunc(VanillaStates::RepeaterDelay()); + handlerFunc(VanillaStates::RespawnAnchorCharge()); + handlerFunc( + reinterpret_cast const&>(VanillaStates::Rotation()) + ); + handlerFunc(reinterpret_cast const&>( + VanillaStates::SculkSensorPhase() + )); + handlerFunc(VanillaStates::SeagrassType()); + handlerFunc(VanillaStates::Stability()); + handlerFunc(VanillaStates::StabilityCheckBit()); + handlerFunc(VanillaStates::StandingRotation()); + handlerFunc(VanillaStates::StructureBlockType()); + handlerFunc(VanillaStates::SuspendedBit()); + handlerFunc(VanillaStates::Tip()); + handlerFunc(VanillaStates::ToggleBit()); + handlerFunc(VanillaStates::TopSlotBit()); + handlerFunc(VanillaStates::TorchFacingDirection()); + handlerFunc(reinterpret_cast const&>( + VanillaStates::TrialSpawnerState() + )); + handlerFunc(VanillaStates::TriggeredBit()); + handlerFunc(VanillaStates::TurtleEggCount()); + handlerFunc(VanillaStates::TwistingVinesAge()); + handlerFunc(VanillaStates::UpdateBit()); + handlerFunc(VanillaStates::UpperBlockBit()); + handlerFunc(VanillaStates::UpsideDownBit()); + handlerFunc(VanillaStates::VaultState()); + handlerFunc(VanillaStates::VineDirectionBits()); + handlerFunc(VanillaStates::WallConnectionTypeEast()); + handlerFunc(VanillaStates::WallConnectionTypeNorth()); + handlerFunc(VanillaStates::WallConnectionTypeSouth()); + handlerFunc(VanillaStates::WallConnectionTypeWest()); + handlerFunc(VanillaStates::WallPostBit()); + handlerFunc(VanillaStates::WeepingVinesAge()); + handlerFunc(reinterpret_cast const&>( + VanillaStates::WeirdoDirection() + )); + } + return states; + }(); + + auto* block = (mEditBlocks[&player] = {pos, &player.getDimensionBlockSource().getBlock(pos)}).second; + auto title = fmt::format("%{0}.name", block->mLegacyBlock->mDescriptionId.get()); + if (gmlib::I18nAPI::get(title) == title.substr(1)) { + title = fmt::format( + "%{0}.name", + block->mLegacyBlock->asItemInstance(*block, nullptr).mItem->getDescriptionId() + ); + } + gmlib::ui::CustomForm form(title); + bool showStates = false; + for (auto& [state, func] : mStatesHandler) { + if (!block->hasState(*state)) continue; + func(form, *block); + showStates = true; + } + if (!showStates) return; + form.sendTo(player, [](Player& player, auto&, std::optional reason) -> void { + if (reason) return; + if (auto it = mEditBlocks.find(&player); it != mEditBlocks.end()) { + player.getDimensionBlockSource().setBlock( + it->second.first, + *it->second.second, + static_cast(BlockUpdateFlag::Network), + nullptr, + nullptr + ); + mEditBlocks.erase(it); + } + }); }, std::chrono::milliseconds(50) ); diff --git a/tooth.json b/tooth.json index e29905a..1da30e7 100644 --- a/tooth.json +++ b/tooth.json @@ -2,7 +2,7 @@ "format_version": 3, "format_uuid": "289f771f-2c9a-4d73-9f3f-8492495a924d", "tooth": "github.com/GroupMountain/GMDebugStick", - "version": "1.0.1", + "version": "1.1.0", "info": { "name": "GMDebugStick", "description": "Register for a debug stick item", @@ -17,8 +17,8 @@ "label": "", "platform": "win-x64", "dependencies": { - "github.com/LiteLDev/LeviLamina": ">=1.2.0", - "github.com/GroupMountain/GMLIB-Release": ">=1.2.*" + "github.com/LiteLDev/LeviLamina": ">=1.3.0", + "github.com/GroupMountain/GMLIB-Release": ">=1.3.0" }, "assets": [ { diff --git a/xmake.lua b/xmake.lua index 8fc3c7b..b1542dc 100644 --- a/xmake.lua +++ b/xmake.lua @@ -3,9 +3,9 @@ add_rules("mode.debug", "mode.release") add_repositories("liteldev-repo https://github.com/LiteLDev/xmake-repo.git") add_repositories("groupmountain-repo https://github.com/GroupMountain/xmake-repo.git") -add_requires("levilamina 1.2.0", {configs = {target_type = "server"}}) +add_requires("levilamina 1.3.0", {configs = {target_type = "server"}}) add_requires("levibuildscript 0.4.0") -add_requires("gmlib 1.2.0-rc.1") +add_requires("gmlib 1.3.0") if not has_config("vs_runtime") then set_runtimes("MD")