diff --git a/Cargo.lock b/Cargo.lock index 1f48d70f7..cdbc0f7dc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1669,7 +1669,6 @@ version = "0.1.0-dev+1.21.7" dependencies = [ "async-trait", "base64", - "bitflags", "bytes", "crossbeam", "dhat", @@ -1754,10 +1753,8 @@ dependencies = [ "log", "pumpkin-data", "pumpkin-protocol", - "pumpkin-registry", "pumpkin-util", "pumpkin-world", - "rayon", "thiserror", "tokio", ] @@ -1795,7 +1792,6 @@ dependencies = [ "bytes", "cfb8", "flate2", - "log", "pumpkin-data", "pumpkin-macros", "pumpkin-nbt", @@ -1813,8 +1809,6 @@ name = "pumpkin-registry" version = "0.1.0-dev+1.21.7" dependencies = [ "indexmap", - "pumpkin-data", - "pumpkin-nbt", "pumpkin-protocol", "pumpkin-util", "serde", @@ -1857,7 +1851,6 @@ dependencies = [ "file-guard", "flate2", "futures", - "indexmap", "itertools 0.14.0", "log", "lru", diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml deleted file mode 100644 index 44befdd44..000000000 --- a/fuzz/Cargo.toml +++ /dev/null @@ -1,21 +0,0 @@ -[package] -name = "pumpkin-fuzz" -version = "0.0.0" -publish = false -edition = "2024" - -[package.metadata] -cargo-fuzz = true - -[dependencies] -pumpkin = { path = "../"} - -libfuzzer-sys = "0.4" - - -[[bin]] -name = "fuzz_target_1" -path = "fuzz_targets/fuzz_target_1.rs" -test = false -doc = false -bench = false diff --git a/fuzz/fuzz_targets/client.rs b/fuzz/fuzz_targets/client.rs deleted file mode 100644 index 43a88c14f..000000000 --- a/fuzz/fuzz_targets/client.rs +++ /dev/null @@ -1,7 +0,0 @@ -#![no_main] - -use libfuzzer_sys::fuzz_target; - -fuzz_target!(|data: &[u8]| { - // fuzzed code goes here -}); diff --git a/pumpkin-api-macros/Cargo.toml b/pumpkin-api-macros/Cargo.toml index 8baff656d..44db176e8 100644 --- a/pumpkin-api-macros/Cargo.toml +++ b/pumpkin-api-macros/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true proc-macro = true [dependencies] -syn = { version = "2.0", features = ["parsing", "printing", "proc-macro", "derive"] } +syn = "2.0" quote = "1.0" proc-macro2 = "1.0" proc-macro-error2.workspace = true diff --git a/pumpkin-data/Cargo.toml b/pumpkin-data/Cargo.toml index 6a421df9e..b94bf6d8d 100644 --- a/pumpkin-data/Cargo.toml +++ b/pumpkin-data/Cargo.toml @@ -9,7 +9,6 @@ phf = { version = "0.12.1", features = ["macros"] } pumpkin-util = { path = "../pumpkin-util" } serde.workspace = true -serde_json.workspace = true [build-dependencies] pumpkin-util = { path = "../pumpkin-util" } diff --git a/pumpkin-inventory/Cargo.toml b/pumpkin-inventory/Cargo.toml index f7d0c7198..9abefaef3 100644 --- a/pumpkin-inventory/Cargo.toml +++ b/pumpkin-inventory/Cargo.toml @@ -9,11 +9,9 @@ pumpkin-protocol = { path = "../pumpkin-protocol" } pumpkin-data = { path = "../pumpkin-data" } pumpkin-world = { path = "../pumpkin-world" } -pumpkin-registry = {path = "../pumpkin-registry"} pumpkin-util = { path = "../pumpkin-util" } log.workspace = true -rayon.workspace = true tokio.workspace = true thiserror.workspace = true async-trait.workspace = true diff --git a/pumpkin-protocol/Cargo.toml b/pumpkin-protocol/Cargo.toml index 28029e755..de81d1fa2 100644 --- a/pumpkin-protocol/Cargo.toml +++ b/pumpkin-protocol/Cargo.toml @@ -19,7 +19,6 @@ pumpkin-util = { path = "../pumpkin-util" } uuid.workspace = true serde.workspace = true thiserror.workspace = true -log.workspace = true tokio.workspace = true bytes.workspace = true diff --git a/pumpkin-registry/Cargo.toml b/pumpkin-registry/Cargo.toml index f82e98f22..ae997e238 100644 --- a/pumpkin-registry/Cargo.toml +++ b/pumpkin-registry/Cargo.toml @@ -4,9 +4,7 @@ version.workspace = true edition.workspace = true [dependencies] -pumpkin-data = { path = "../pumpkin-data" } pumpkin-protocol = { path = "../pumpkin-protocol" } -pumpkin-nbt = { path = "../pumpkin-nbt" } pumpkin-util = { path = "../pumpkin-util" } indexmap = { version = "2.10", features = ["serde"] } diff --git a/pumpkin-world/Cargo.toml b/pumpkin-world/Cargo.toml index d4cd5c7bb..ad0373502 100644 --- a/pumpkin-world/Cargo.toml +++ b/pumpkin-world/Cargo.toml @@ -38,7 +38,6 @@ ruzstd = "0.8.1" itertools = "0.14.0" file-guard = "0.2" -indexmap = "2.10" enum_dispatch = "0.3" derive-getters = "0.5.0" diff --git a/pumpkin-world/src/entity/entity_data_flags.rs b/pumpkin-world/src/entity/entity_data_flags.rs index 07c12466a..258e315e5 100644 --- a/pumpkin-world/src/entity/entity_data_flags.rs +++ b/pumpkin-world/src/entity/entity_data_flags.rs @@ -1,382 +1,382 @@ // Entity -pub static DATA_SHARED_FLAGS_ID: u8 = 0; -pub static DATA_AIR_SUPPLY_ID: u8 = 1; -pub static DATA_CUSTOM_NAME: u8 = 2; -pub static DATA_CUSTOM_NAME_VISIBLE: u8 = 3; -pub static DATA_SILENT: u8 = 4; -pub static DATA_NO_GRAVITY: u8 = 5; -pub static DATA_POSE: u8 = 6; -pub static DATA_TICKS_FROZEN: u8 = 7; +pub const DATA_SHARED_FLAGS_ID: u8 = 0; +pub const DATA_AIR_SUPPLY_ID: u8 = 1; +pub const DATA_CUSTOM_NAME: u8 = 2; +pub const DATA_CUSTOM_NAME_VISIBLE: u8 = 3; +pub const DATA_SILENT: u8 = 4; +pub const DATA_NO_GRAVITY: u8 = 5; +pub const DATA_POSE: u8 = 6; +pub const DATA_TICKS_FROZEN: u8 = 7; // OminousItemSpawner // DATA_ITEM -pub static DATA_ITEM_OMINOUS_ITEM_SPAWNER: u8 = 8; +pub const DATA_ITEM_OMINOUS_ITEM_SPAWNER: u8 = 8; // LivingEntity -pub static DATA_LIVING_ENTITY_FLAGS: u8 = 8; -pub static DATA_HEALTH_ID: u8 = 9; -pub static DATA_EFFECT_PARTICLES: u8 = 10; -pub static DATA_EFFECT_AMBIENCE_ID: u8 = 11; -pub static DATA_ARROW_COUNT_ID: u8 = 12; -pub static DATA_STINGER_COUNT_ID: u8 = 13; -pub static SLEEPING_POS_ID: u8 = 14; +pub const DATA_LIVING_ENTITY_FLAGS: u8 = 8; +pub const DATA_HEALTH_ID: u8 = 9; +pub const DATA_EFFECT_PARTICLES: u8 = 10; +pub const DATA_EFFECT_AMBIENCE_ID: u8 = 11; +pub const DATA_ARROW_COUNT_ID: u8 = 12; +pub const DATA_STINGER_COUNT_ID: u8 = 13; +pub const SLEEPING_POS_ID: u8 = 14; // Mob -pub static DATA_MOB_FLAGS_ID: u8 = 15; +pub const DATA_MOB_FLAGS_ID: u8 = 15; // PathfinderMob // AgeableMob // DATA_BABY_ID -pub static DATA_BABY_ID_AGEABLE_MOB: u8 = 16; +pub const DATA_BABY_ID_AGEABLE_MOB: u8 = 16; // Interaction // DATA_WIDTH_ID -pub static DATA_WIDTH_ID_INTERACTION: u8 = 8; +pub const DATA_WIDTH_ID_INTERACTION: u8 = 8; // DATA_HEIGHT_ID -pub static DATA_HEIGHT_ID_INTERACTION: u8 = 9; -pub static DATA_RESPONSE_ID: u8 = 10; +pub const DATA_HEIGHT_ID_INTERACTION: u8 = 9; +pub const DATA_RESPONSE_ID: u8 = 10; // Animal // TamableAnimal // DATA_FLAGS_ID -pub static DATA_FLAGS_ID_TAMABLE_ANIMAL: u8 = 17; -pub static DATA_OWNERUUID_ID: u8 = 18; +pub const DATA_FLAGS_ID_TAMABLE_ANIMAL: u8 = 17; +pub const DATA_OWNERUUID_ID: u8 = 18; // Display -pub static DATA_TRANSFORMATION_INTERPOLATION_START_DELTA_TICKS_ID: u8 = 8; -pub static DATA_TRANSFORMATION_INTERPOLATION_DURATION_ID: u8 = 9; -pub static DATA_POS_ROT_INTERPOLATION_DURATION_ID: u8 = 10; -pub static DATA_TRANSLATION_ID: u8 = 11; -pub static DATA_SCALE_ID: u8 = 12; -pub static DATA_LEFT_ROTATION_ID: u8 = 13; -pub static DATA_RIGHT_ROTATION_ID: u8 = 14; -pub static DATA_BILLBOARD_RENDER_CONSTRAINTS_ID: u8 = 15; -pub static DATA_BRIGHTNESS_OVERRIDE_ID: u8 = 16; -pub static DATA_VIEW_RANGE_ID: u8 = 17; -pub static DATA_SHADOW_RADIUS_ID: u8 = 18; -pub static DATA_SHADOW_STRENGTH_ID: u8 = 19; +pub const DATA_TRANSFORMATION_INTERPOLATION_START_DELTA_TICKS_ID: u8 = 8; +pub const DATA_TRANSFORMATION_INTERPOLATION_DURATION_ID: u8 = 9; +pub const DATA_POS_ROT_INTERPOLATION_DURATION_ID: u8 = 10; +pub const DATA_TRANSLATION_ID: u8 = 11; +pub const DATA_SCALE_ID: u8 = 12; +pub const DATA_LEFT_ROTATION_ID: u8 = 13; +pub const DATA_RIGHT_ROTATION_ID: u8 = 14; +pub const DATA_BILLBOARD_RENDER_CONSTRAINTS_ID: u8 = 15; +pub const DATA_BRIGHTNESS_OVERRIDE_ID: u8 = 16; +pub const DATA_VIEW_RANGE_ID: u8 = 17; +pub const DATA_SHADOW_RADIUS_ID: u8 = 18; +pub const DATA_SHADOW_STRENGTH_ID: u8 = 19; // DATA_WIDTH_ID -pub static DATA_WIDTH_ID_DISPLAY: u8 = 20; +pub const DATA_WIDTH_ID_DISPLAY: u8 = 20; // DATA_HEIGHT_ID -pub static DATA_HEIGHT_ID_DISPLAY: u8 = 21; -pub static DATA_GLOW_COLOR_OVERRIDE_ID: u8 = 22; +pub const DATA_HEIGHT_ID_DISPLAY: u8 = 21; +pub const DATA_GLOW_COLOR_OVERRIDE_ID: u8 = 22; // Display.BlockDisplay // DATA_BLOCK_STATE_ID -pub static DATA_BLOCK_STATE_ID_DISPLAY_BLOCK_DISPLAY: u8 = 0; +pub const DATA_BLOCK_STATE_ID_DISPLAY_BLOCK_DISPLAY: u8 = 0; // Display.ItemDisplay -pub static DATA_ITEM_STACK_ID: u8 = 0; -pub static DATA_ITEM_DISPLAY_ID: u8 = 1; +pub const DATA_ITEM_STACK_ID: u8 = 0; +pub const DATA_ITEM_DISPLAY_ID: u8 = 1; // Display.TextDisplay -pub static DATA_TEXT_ID: u8 = 0; -pub static DATA_LINE_WIDTH_ID: u8 = 1; -pub static DATA_BACKGROUND_COLOR_ID: u8 = 2; -pub static DATA_TEXT_OPACITY_ID: u8 = 3; -pub static DATA_STYLE_FLAGS_ID: u8 = 4; +pub const DATA_TEXT_ID: u8 = 0; +pub const DATA_LINE_WIDTH_ID: u8 = 1; +pub const DATA_BACKGROUND_COLOR_ID: u8 = 2; +pub const DATA_TEXT_OPACITY_ID: u8 = 3; +pub const DATA_STYLE_FLAGS_ID: u8 = 4; // AgeableWaterCreature // Squid // GlowSquid -pub static DATA_DARK_TICKS_REMAINING: u8 = 17; +pub const DATA_DARK_TICKS_REMAINING: u8 = 17; // ExperienceOrb -pub static DATA_VALUE: u8 = 8; +pub const DATA_VALUE: u8 = 8; // AreaEffectCloud -pub static DATA_RADIUS: u8 = 8; -pub static DATA_WAITING: u8 = 9; -pub static DATA_PARTICLE: u8 = 10; +pub const DATA_RADIUS: u8 = 8; +pub const DATA_WAITING: u8 = 9; +pub const DATA_PARTICLE: u8 = 10; // ArmorStand -pub static DATA_CLIENT_FLAGS: u8 = 15; -pub static DATA_HEAD_POSE: u8 = 16; -pub static DATA_BODY_POSE: u8 = 17; -pub static DATA_LEFT_ARM_POSE: u8 = 18; -pub static DATA_RIGHT_ARM_POSE: u8 = 19; -pub static DATA_LEFT_LEG_POSE: u8 = 20; -pub static DATA_RIGHT_LEG_POSE: u8 = 21; +pub const DATA_CLIENT_FLAGS: u8 = 15; +pub const DATA_HEAD_POSE: u8 = 16; +pub const DATA_BODY_POSE: u8 = 17; +pub const DATA_LEFT_ARM_POSE: u8 = 18; +pub const DATA_RIGHT_ARM_POSE: u8 = 19; +pub const DATA_LEFT_LEG_POSE: u8 = 20; +pub const DATA_RIGHT_LEG_POSE: u8 = 21; // BlockAttachedEntity // HangingEntity // ItemFrame // DATA_ITEM -pub static DATA_ITEM_ITEM_FRAME: u8 = 8; -pub static DATA_ROTATION: u8 = 9; +pub const DATA_ITEM_ITEM_FRAME: u8 = 8; +pub const DATA_ROTATION: u8 = 9; // Painting -pub static DATA_PAINTING_VARIANT_ID: u8 = 8; +pub const DATA_PAINTING_VARIANT_ID: u8 = 8; // VehicleEntity -pub static DATA_ID_HURT: u8 = 8; -pub static DATA_ID_HURTDIR: u8 = 9; -pub static DATA_ID_DAMAGE: u8 = 10; +pub const DATA_ID_HURT: u8 = 8; +pub const DATA_ID_HURTDIR: u8 = 9; +pub const DATA_ID_DAMAGE: u8 = 10; // AbstractBoat -pub static DATA_ID_PADDLE_LEFT: u8 = 11; -pub static DATA_ID_PADDLE_RIGHT: u8 = 12; -pub static DATA_ID_BUBBLE_TIME: u8 = 13; +pub const DATA_ID_PADDLE_LEFT: u8 = 11; +pub const DATA_ID_PADDLE_RIGHT: u8 = 12; +pub const DATA_ID_BUBBLE_TIME: u8 = 13; // AbstractMinecart -pub static DATA_ID_CUSTOM_DISPLAY_BLOCK: u8 = 11; -pub static DATA_ID_DISPLAY_OFFSET: u8 = 12; +pub const DATA_ID_CUSTOM_DISPLAY_BLOCK: u8 = 11; +pub const DATA_ID_DISPLAY_OFFSET: u8 = 12; // MinecartFurnace -pub static DATA_ID_FUEL: u8 = 13; +pub const DATA_ID_FUEL: u8 = 13; // MinecartCommandBlock -pub static DATA_ID_COMMAND_NAME: u8 = 13; -pub static DATA_ID_LAST_OUTPUT: u8 = 14; +pub const DATA_ID_COMMAND_NAME: u8 = 13; +pub const DATA_ID_LAST_OUTPUT: u8 = 14; // AmbientCreature // Bat // DATA_ID_FLAGS -pub static DATA_ID_FLAGS_BAT: u8 = 16; +pub const DATA_ID_FLAGS_BAT: u8 = 16; // EndCrystal -pub static DATA_BEAM_TARGET: u8 = 8; -pub static DATA_SHOW_BOTTOM: u8 = 9; +pub const DATA_BEAM_TARGET: u8 = 8; +pub const DATA_SHOW_BOTTOM: u8 = 9; // EnderDragon -pub static DATA_PHASE: u8 = 16; +pub const DATA_PHASE: u8 = 16; // Monster // WitherBoss -pub static DATA_TARGET_A: u8 = 16; -pub static DATA_TARGET_B: u8 = 17; -pub static DATA_TARGET_C: u8 = 18; -pub static DATA_ID_INV: u8 = 19; +pub const DATA_TARGET_A: u8 = 16; +pub const DATA_TARGET_B: u8 = 17; +pub const DATA_TARGET_C: u8 = 18; +pub const DATA_ID_INV: u8 = 19; // Projectile // FishingHook -pub static DATA_HOOKED_ENTITY: u8 = 8; -pub static DATA_BITING: u8 = 9; +pub const DATA_HOOKED_ENTITY: u8 = 8; +pub const DATA_BITING: u8 = 9; // EyeOfEnder // DATA_ITEM_STACK -pub static DATA_ITEM_STACK_EYE_OF_ENDER: u8 = 8; +pub const DATA_ITEM_STACK_EYE_OF_ENDER: u8 = 8; // AbstractArrow -pub static ID_FLAGS: u8 = 8; -pub static PIERCE_LEVEL: u8 = 9; -pub static IN_GROUND: u8 = 10; +pub const ID_FLAGS: u8 = 8; +pub const PIERCE_LEVEL: u8 = 9; +pub const IN_GROUND: u8 = 10; // ThrownTrident -pub static ID_LOYALTY: u8 = 11; -pub static ID_FOIL: u8 = 12; +pub const ID_LOYALTY: u8 = 11; +pub const ID_FOIL: u8 = 12; // Arrow -pub static ID_EFFECT_COLOR: u8 = 11; +pub const ID_EFFECT_COLOR: u8 = 11; // AbstractHurtingProjectile // WitherSkull -pub static DATA_DANGEROUS: u8 = 8; +pub const DATA_DANGEROUS: u8 = 8; // Fireball // DATA_ITEM_STACK -pub static DATA_ITEM_STACK_FIREBALL: u8 = 8; +pub const DATA_ITEM_STACK_FIREBALL: u8 = 8; // FireworkRocketEntity -pub static DATA_ID_FIREWORKS_ITEM: u8 = 8; -pub static DATA_ATTACHED_TO_TARGET: u8 = 9; -pub static DATA_SHOT_AT_ANGLE: u8 = 10; +pub const DATA_ID_FIREWORKS_ITEM: u8 = 8; +pub const DATA_ATTACHED_TO_TARGET: u8 = 9; +pub const DATA_SHOT_AT_ANGLE: u8 = 10; // ThrowableProjectile // ThrowableItemProjectile // DATA_ITEM_STACK -pub static DATA_ITEM_STACK_THROWABLE_ITEM_PROJECTILE: u8 = 8; +pub const DATA_ITEM_STACK_THROWABLE_ITEM_PROJECTILE: u8 = 8; // FallingBlockEntity -pub static DATA_START_POS: u8 = 8; +pub const DATA_START_POS: u8 = 8; // PrimedTnt -pub static DATA_FUSE_ID: u8 = 8; +pub const DATA_FUSE_ID: u8 = 8; // DATA_BLOCK_STATE_ID -pub static DATA_BLOCK_STATE_ID_PRIMED_TNT: u8 = 9; +pub const DATA_BLOCK_STATE_ID_PRIMED_TNT: u8 = 9; // ItemEntity // DATA_ITEM -pub static DATA_ITEM_ITEM_ENTITY: u8 = 8; +pub const DATA_ITEM_ITEM_ENTITY: u8 = 8; // PatrollingMonster // Raider -pub static IS_CELEBRATING: u8 = 16; +pub const IS_CELEBRATING: u8 = 16; // Rabbit // DATA_TYPE_ID -pub static DATA_TYPE_ID_RABBIT: u8 = 17; +pub const DATA_TYPE_ID_RABBIT: u8 = 17; // ShoulderRidingEntity // Parrot // DATA_VARIANT_ID -pub static DATA_VARIANT_ID_PARROT: u8 = 19; +pub const DATA_VARIANT_ID_PARROT: u8 = 19; // Turtle -pub static HAS_EGG: u8 = 17; -pub static LAYING_EGG: u8 = 18; +pub const HAS_EGG: u8 = 17; +pub const LAYING_EGG: u8 = 18; // WaterAnimal // AbstractFish // FROM_BUCKET -pub static FROM_BUCKET_ABSTRACT_FISH: u8 = 16; +pub const FROM_BUCKET_ABSTRACT_FISH: u8 = 16; // Pufferfish -pub static PUFF_STATE: u8 = 17; +pub const PUFF_STATE: u8 = 17; // AbstractGolem // IronGolem // DATA_FLAGS_ID -pub static DATA_FLAGS_ID_IRON_GOLEM: u8 = 16; +pub const DATA_FLAGS_ID_IRON_GOLEM: u8 = 16; // Bee // DATA_FLAGS_ID -pub static DATA_FLAGS_ID_BEE: u8 = 17; +pub const DATA_FLAGS_ID_BEE: u8 = 17; // DATA_REMAINING_ANGER_TIME -pub static DATA_REMAINING_ANGER_TIME_BEE: u8 = 18; +pub const DATA_REMAINING_ANGER_TIME_BEE: u8 = 18; // SnowGolem -pub static DATA_PUMPKIN_ID: u8 = 16; +pub const DATA_PUMPKIN_ID: u8 = 16; // AbstractCow // Cow // DATA_VARIANT_ID -pub static DATA_VARIANT_ID_COW: u8 = 17; +pub const DATA_VARIANT_ID_COW: u8 = 17; // AbstractSchoolingFish // Salmon // DATA_TYPE -pub static DATA_TYPE_SALMON: u8 = 17; +pub const DATA_TYPE_SALMON: u8 = 17; // Cat // DATA_VARIANT_ID -pub static DATA_VARIANT_ID_CAT: u8 = 19; -pub static IS_LYING: u8 = 20; -pub static RELAX_STATE_ONE: u8 = 21; +pub const DATA_VARIANT_ID_CAT: u8 = 19; +pub const IS_LYING: u8 = 20; +pub const RELAX_STATE_ONE: u8 = 21; // DATA_COLLAR_COLOR -pub static DATA_COLLAR_COLOR_CAT: u8 = 22; +pub const DATA_COLLAR_COLOR_CAT: u8 = 22; // PolarBear -pub static DATA_STANDING_ID: u8 = 17; +pub const DATA_STANDING_ID: u8 = 17; // TropicalFish // DATA_ID_TYPE_VARIANT -pub static DATA_ID_TYPE_VARIANT_TROPICAL_FISH: u8 = 17; +pub const DATA_ID_TYPE_VARIANT_TROPICAL_FISH: u8 = 17; // Fox // DATA_TYPE_ID -pub static DATA_TYPE_ID_FOX: u8 = 17; +pub const DATA_TYPE_ID_FOX: u8 = 17; // DATA_FLAGS_ID -pub static DATA_FLAGS_ID_FOX: u8 = 18; -pub static DATA_TRUSTED_ID_0: u8 = 19; -pub static DATA_TRUSTED_ID_1: u8 = 20; +pub const DATA_FLAGS_ID_FOX: u8 = 18; +pub const DATA_TRUSTED_ID_0: u8 = 19; +pub const DATA_TRUSTED_ID_1: u8 = 20; // Ocelot -pub static DATA_TRUSTING: u8 = 17; +pub const DATA_TRUSTING: u8 = 17; // Chicken // DATA_VARIANT_ID -pub static DATA_VARIANT_ID_CHICKEN: u8 = 17; +pub const DATA_VARIANT_ID_CHICKEN: u8 = 17; // Panda -pub static UNHAPPY_COUNTER: u8 = 17; -pub static SNEEZE_COUNTER: u8 = 18; -pub static EAT_COUNTER: u8 = 19; -pub static MAIN_GENE_ID: u8 = 20; -pub static HIDDEN_GENE_ID: u8 = 21; +pub const UNHAPPY_COUNTER: u8 = 17; +pub const SNEEZE_COUNTER: u8 = 18; +pub const EAT_COUNTER: u8 = 19; +pub const MAIN_GENE_ID: u8 = 20; +pub const HIDDEN_GENE_ID: u8 = 21; // DATA_ID_FLAGS -pub static DATA_ID_FLAGS_PANDA: u8 = 22; +pub const DATA_ID_FLAGS_PANDA: u8 = 22; // MushroomCow // DATA_TYPE -pub static DATA_TYPE_MUSHROOM_COW: u8 = 17; +pub const DATA_TYPE_MUSHROOM_COW: u8 = 17; // Pig // DATA_BOOST_TIME -pub static DATA_BOOST_TIME_PIG: u8 = 17; +pub const DATA_BOOST_TIME_PIG: u8 = 17; // DATA_VARIANT_ID -pub static DATA_VARIANT_ID_PIG: u8 = 18; +pub const DATA_VARIANT_ID_PIG: u8 = 18; // Dolphin -pub static GOT_FISH: u8 = 17; -pub static MOISTNESS_LEVEL: u8 = 18; +pub const GOT_FISH: u8 = 17; +pub const MOISTNESS_LEVEL: u8 = 18; // Sniffer -pub static DATA_STATE: u8 = 17; -pub static DATA_DROP_SEED_AT_TICK: u8 = 18; +pub const DATA_STATE: u8 = 17; +pub const DATA_DROP_SEED_AT_TICK: u8 = 18; // Allay -pub static DATA_DANCING: u8 = 16; -pub static DATA_CAN_DUPLICATE: u8 = 17; +pub const DATA_DANCING: u8 = 16; +pub const DATA_CAN_DUPLICATE: u8 = 17; // Sheep -pub static DATA_WOOL_ID: u8 = 17; +pub const DATA_WOOL_ID: u8 = 17; // AbstractHorse // DATA_ID_FLAGS -pub static DATA_ID_FLAGS_ABSTRACT_HORSE: u8 = 17; +pub const DATA_ID_FLAGS_ABSTRACT_HORSE: u8 = 17; // Camel -pub static DASH: u8 = 18; -pub static LAST_POSE_CHANGE_TICK: u8 = 19; +pub const DASH: u8 = 18; +pub const LAST_POSE_CHANGE_TICK: u8 = 19; // Goat -pub static DATA_IS_SCREAMING_GOAT: u8 = 17; -pub static DATA_HAS_LEFT_HORN: u8 = 18; -pub static DATA_HAS_RIGHT_HORN: u8 = 19; +pub const DATA_IS_SCREAMING_GOAT: u8 = 17; +pub const DATA_HAS_LEFT_HORN: u8 = 18; +pub const DATA_HAS_RIGHT_HORN: u8 = 19; // Wolf -pub static DATA_INTERESTED_ID: u8 = 19; +pub const DATA_INTERESTED_ID: u8 = 19; // DATA_COLLAR_COLOR -pub static DATA_COLLAR_COLOR_WOLF: u8 = 20; +pub const DATA_COLLAR_COLOR_WOLF: u8 = 20; // DATA_REMAINING_ANGER_TIME -pub static DATA_REMAINING_ANGER_TIME_WOLF: u8 = 21; +pub const DATA_REMAINING_ANGER_TIME_WOLF: u8 = 21; // DATA_VARIANT_ID -pub static DATA_VARIANT_ID_WOLF: u8 = 22; -pub static DATA_SOUND_VARIANT_ID: u8 = 23; +pub const DATA_VARIANT_ID_WOLF: u8 = 22; +pub const DATA_SOUND_VARIANT_ID: u8 = 23; // Frog // DATA_VARIANT_ID -pub static DATA_VARIANT_ID_FROG: u8 = 17; -pub static DATA_TONGUE_TARGET_ID: u8 = 18; +pub const DATA_VARIANT_ID_FROG: u8 = 17; +pub const DATA_TONGUE_TARGET_ID: u8 = 18; // Horse // DATA_ID_TYPE_VARIANT -pub static DATA_ID_TYPE_VARIANT_HORSE: u8 = 18; +pub const DATA_ID_TYPE_VARIANT_HORSE: u8 = 18; // AbstractChestedHorse -pub static DATA_ID_CHEST: u8 = 18; +pub const DATA_ID_CHEST: u8 = 18; // Llama -pub static DATA_STRENGTH_ID: u8 = 19; +pub const DATA_STRENGTH_ID: u8 = 19; // DATA_VARIANT_ID -pub static DATA_VARIANT_ID_LLAMA: u8 = 20; +pub const DATA_VARIANT_ID_LLAMA: u8 = 20; // Axolotl -pub static DATA_VARIANT: u8 = 17; -pub static DATA_PLAYING_DEAD: u8 = 18; +pub const DATA_VARIANT: u8 = 17; +pub const DATA_PLAYING_DEAD: u8 = 18; // FROM_BUCKET -pub static FROM_BUCKET_AXOLOTL: u8 = 19; +pub const FROM_BUCKET_AXOLOTL: u8 = 19; // Armadillo -pub static ARMADILLO_STATE: u8 = 17; +pub const ARMADILLO_STATE: u8 = 17; // AbstractVillager -pub static DATA_UNHAPPY_COUNTER: u8 = 17; +pub const DATA_UNHAPPY_COUNTER: u8 = 17; // Villager // DATA_VILLAGER_DATA -pub static DATA_VILLAGER_DATA_VILLAGER: u8 = 18; +pub const DATA_VILLAGER_DATA_VILLAGER: u8 = 18; // Vex // DATA_FLAGS_ID -pub static DATA_FLAGS_ID_VEX: u8 = 16; +pub const DATA_FLAGS_ID_VEX: u8 = 16; // FlyingMob // Ghast -pub static DATA_IS_CHARGING: u8 = 16; +pub const DATA_IS_CHARGING: u8 = 16; // Zoglin // DATA_BABY_ID -pub static DATA_BABY_ID_ZOGLIN: u8 = 16; +pub const DATA_BABY_ID_ZOGLIN: u8 = 16; // Zombie // DATA_BABY_ID -pub static DATA_BABY_ID_ZOMBIE: u8 = 16; -pub static DATA_SPECIAL_TYPE_ID: u8 = 17; -pub static DATA_DROWNED_CONVERSION_ID: u8 = 18; +pub const DATA_BABY_ID_ZOMBIE: u8 = 16; +pub const DATA_SPECIAL_TYPE_ID: u8 = 17; +pub const DATA_DROWNED_CONVERSION_ID: u8 = 18; // Blaze // DATA_FLAGS_ID -pub static DATA_FLAGS_ID_BLAZE: u8 = 16; +pub const DATA_FLAGS_ID_BLAZE: u8 = 16; // Guardian -pub static DATA_ID_MOVING: u8 = 16; -pub static DATA_ID_ATTACK_TARGET: u8 = 17; +pub const DATA_ID_MOVING: u8 = 16; +pub const DATA_ID_ATTACK_TARGET: u8 = 17; // Strider // DATA_BOOST_TIME -pub static DATA_BOOST_TIME_STRIDER: u8 = 17; -pub static DATA_SUFFOCATING: u8 = 18; +pub const DATA_BOOST_TIME_STRIDER: u8 = 17; +pub const DATA_SUFFOCATING: u8 = 18; // Spider // DATA_FLAGS_ID -pub static DATA_FLAGS_ID_SPIDER: u8 = 16; +pub const DATA_FLAGS_ID_SPIDER: u8 = 16; // Phantom // ID_SIZE -pub static ID_SIZE_PHANTOM: u8 = 16; +pub const ID_SIZE_PHANTOM: u8 = 16; // AbstractSkeleton // Skeleton -pub static DATA_STRAY_CONVERSION_ID: u8 = 16; +pub const DATA_STRAY_CONVERSION_ID: u8 = 16; // AbstractIllager // SpellcasterIllager -pub static DATA_SPELL_CASTING_ID: u8 = 17; +pub const DATA_SPELL_CASTING_ID: u8 = 17; // Witch -pub static DATA_USING_ITEM: u8 = 17; +pub const DATA_USING_ITEM: u8 = 17; // Bogged -pub static DATA_SHEARED: u8 = 16; +pub const DATA_SHEARED: u8 = 16; // Slime // ID_SIZE -pub static ID_SIZE_SLIME: u8 = 16; +pub const ID_SIZE_SLIME: u8 = 16; // Creeper -pub static DATA_SWELL_DIR: u8 = 16; -pub static DATA_IS_POWERED: u8 = 17; -pub static DATA_IS_IGNITED: u8 = 18; +pub const DATA_SWELL_DIR: u8 = 16; +pub const DATA_IS_POWERED: u8 = 17; +pub const DATA_IS_IGNITED: u8 = 18; // EnderMan -pub static DATA_CARRY_STATE: u8 = 16; -pub static DATA_CREEPY: u8 = 17; -pub static DATA_STARED_AT: u8 = 18; +pub const DATA_CARRY_STATE: u8 = 16; +pub const DATA_CREEPY: u8 = 17; +pub const DATA_STARED_AT: u8 = 18; // Pillager -pub static IS_CHARGING_CROSSBOW: u8 = 17; +pub const IS_CHARGING_CROSSBOW: u8 = 17; // ZombieVillager -pub static DATA_CONVERTING_ID: u8 = 19; +pub const DATA_CONVERTING_ID: u8 = 19; // DATA_VILLAGER_DATA -pub static DATA_VILLAGER_DATA_ZOMBIE_VILLAGER: u8 = 20; +pub const DATA_VILLAGER_DATA_ZOMBIE_VILLAGER: u8 = 20; // Shulker -pub static DATA_ATTACH_FACE_ID: u8 = 16; -pub static DATA_PEEK_ID: u8 = 17; -pub static DATA_COLOR_ID: u8 = 18; +pub const DATA_ATTACH_FACE_ID: u8 = 16; +pub const DATA_PEEK_ID: u8 = 17; +pub const DATA_COLOR_ID: u8 = 18; // Creaking -pub static CAN_MOVE: u8 = 16; -pub static IS_ACTIVE: u8 = 17; -pub static IS_TEARING_DOWN: u8 = 18; -pub static HOME_POS: u8 = 19; +pub const CAN_MOVE: u8 = 16; +pub const IS_ACTIVE: u8 = 17; +pub const IS_TEARING_DOWN: u8 = 18; +pub const HOME_POS: u8 = 19; // AbstractPiglin // DATA_IMMUNE_TO_ZOMBIFICATION -pub static DATA_IMMUNE_TO_ZOMBIFICATION_ABSTRACT_PIGLIN: u8 = 16; +pub const DATA_IMMUNE_TO_ZOMBIFICATION_ABSTRACT_PIGLIN: u8 = 16; // Piglin // DATA_BABY_ID -pub static DATA_BABY_ID_PIGLIN: u8 = 17; -pub static DATA_IS_CHARGING_CROSSBOW: u8 = 18; -pub static DATA_IS_DANCING: u8 = 19; +pub const DATA_BABY_ID_PIGLIN: u8 = 17; +pub const DATA_IS_CHARGING_CROSSBOW: u8 = 18; +pub const DATA_IS_DANCING: u8 = 19; // Hoglin // DATA_IMMUNE_TO_ZOMBIFICATION -pub static DATA_IMMUNE_TO_ZOMBIFICATION_HOGLIN: u8 = 17; +pub const DATA_IMMUNE_TO_ZOMBIFICATION_HOGLIN: u8 = 17; // Warden -pub static CLIENT_ANGER_LEVEL: u8 = 16; +pub const CLIENT_ANGER_LEVEL: u8 = 16; // Player -pub static DATA_PLAYER_ABSORPTION_ID: u8 = 15; -pub static DATA_SCORE_ID: u8 = 16; -pub static DATA_PLAYER_MODE_CUSTOMISATION: u8 = 17; -pub static DATA_PLAYER_MAIN_HAND: u8 = 18; -pub static DATA_SHOULDER_LEFT: u8 = 19; -pub static DATA_SHOULDER_RIGHT: u8 = 20; +pub const DATA_PLAYER_ABSORPTION_ID: u8 = 15; +pub const DATA_SCORE_ID: u8 = 16; +pub const DATA_PLAYER_MODE_CUSTOMISATION: u8 = 17; +pub const DATA_PLAYER_MAIN_HAND: u8 = 18; +pub const DATA_SHOULDER_LEFT: u8 = 19; +pub const DATA_SHOULDER_RIGHT: u8 = 20; diff --git a/pumpkin/Cargo.toml b/pumpkin/Cargo.toml index 00cbf2d5f..418313e57 100644 --- a/pumpkin/Cargo.toml +++ b/pumpkin/Cargo.toml @@ -74,7 +74,6 @@ time = "0.3" # plugins libloading = "0.8" -bitflags = "2.9.1" rustc-hash = "2.1.1" # Task handling diff --git a/pumpkin/src/block/registry.rs b/pumpkin/src/block/registry.rs index 57b171f1f..1fd33063f 100644 --- a/pumpkin/src/block/registry.rs +++ b/pumpkin/src/block/registry.rs @@ -76,6 +76,7 @@ impl BlockRegistry { pub fn register(&mut self, block: T) { let names = block.names(); let val = Arc::new(block); + self.blocks.reserve(names.len()); for i in names { self.blocks.insert( block_properties::get_block(i.as_str()).unwrap(), @@ -87,6 +88,7 @@ impl BlockRegistry { pub fn register_fluid(&mut self, fluid: T) { let names = fluid.names(); let val = Arc::new(fluid); + self.fluids.reserve(names.len()); for i in names { self.fluids .insert(fluid::get_fluid(i.as_str()).unwrap(), val.clone()); diff --git a/pumpkin/src/item/registry.rs b/pumpkin/src/item/registry.rs index 68cffff1d..3154140d4 100644 --- a/pumpkin/src/item/registry.rs +++ b/pumpkin/src/item/registry.rs @@ -17,6 +17,7 @@ pub struct ItemRegistry { impl ItemRegistry { pub fn register(&mut self, item: T) { let val = Arc::new(item); + self.items.reserve(T::ids().len()); for i in T::ids() { self.items.insert(Item::from_id(i).unwrap(), val.clone()); } diff --git a/pumpkin/src/logging.rs b/pumpkin/src/logging.rs index 1e8c2c7cb..dbc395fc8 100644 --- a/pumpkin/src/logging.rs +++ b/pumpkin/src/logging.rs @@ -41,7 +41,7 @@ impl GzipRollingLogger { let mut file = File::open(format!("logs/{filename}"))?; let mut encoder = GzEncoder::new( BufWriter::new(File::create(&new_filename)?), - flate2::Compression::default(), + flate2::Compression::best(), ); println!("logs/{filename}"); std::io::copy(&mut file, &mut encoder)?; @@ -90,7 +90,7 @@ impl GzipRollingLogger { let mut file = File::open(format!("logs/{}", data.latest_filename))?; let mut encoder = GzEncoder::new( BufWriter::new(File::create(format!("logs/{new_filename}"))?), - flate2::Compression::default(), + flate2::Compression::best(), ); std::io::copy(&mut file, &mut encoder)?; encoder.finish()?;