diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_01.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_01.xml new file mode 100644 index 00000000..6bf67a85 --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_01.xml @@ -0,0 +1,104 @@ + + + + + + y + + + x + + + z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_01_coal.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_01_coal.xml new file mode 100644 index 00000000..6de3f4ec --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_01_coal.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_02.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_02.xml new file mode 100644 index 00000000..f886b894 --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_02.xml @@ -0,0 +1,93 @@ + + + + + + y + + + x + + + z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_02_coal.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_02_coal.xml new file mode 100644 index 00000000..4a7391ed --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_02_coal.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_03.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_03.xml new file mode 100644 index 00000000..b0c4614a --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_03.xml @@ -0,0 +1,76 @@ + + + + + + y + + + x + + + z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_03_coal.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_03_coal.xml new file mode 100644 index 00000000..dbf0c3ac --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_03_coal.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_04.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_04.xml new file mode 100644 index 00000000..226f0a6e --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_04.xml @@ -0,0 +1,47 @@ + + + + + + y + + + x + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_04_coal.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_04_coal.xml new file mode 100644 index 00000000..3c3cc5c4 --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_skull_04_coal.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_01.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_01.xml new file mode 100644 index 00000000..199042a9 --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_01.xml @@ -0,0 +1,52 @@ + + + + + + z + + + y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_01_coal.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_01_coal.xml new file mode 100644 index 00000000..2ca00fe3 --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_01_coal.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_02.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_02.xml new file mode 100644 index 00000000..970f8664 --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_02.xml @@ -0,0 +1,79 @@ + + + + + + z + + + x + + + y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_02_coal.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_02_coal.xml new file mode 100644 index 00000000..193670b4 --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_02_coal.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_03.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_03.xml new file mode 100644 index 00000000..10fc3990 --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_03.xml @@ -0,0 +1,115 @@ + + + + + + z + + + y + + + x + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_03_coal.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_03_coal.xml new file mode 100644 index 00000000..acaeb59f --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_03_coal.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_04.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_04.xml new file mode 100644 index 00000000..0d2b54ba --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_04.xml @@ -0,0 +1,139 @@ + + + + + + z + + + x + + + y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_04_coal.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_04_coal.xml new file mode 100644 index 00000000..6b51471f --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/fossils/fossil_spine_04_coal.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/igloo/igloo_bottom.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/igloo/igloo_bottom.xml new file mode 100644 index 00000000..6511c394 --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/igloo/igloo_bottom.xml @@ -0,0 +1,346 @@ + + + + + + stone + + + stonebrick + + + cracked_stonebrick + + + + mossy_stonebrick + + + smooth_andesite + + + chiseled_stonebrick + + + chiseled_brick + + + stone_brick + + + mossy_brick + + + south + + + east + + + data + + + false + true + false + + + 0 + empty + + + false + false + false + false + + + red + + + + south + + + 2 + + + top + north + straight + + + top + spruce + + + top + south + straight + + + north + + + north + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [2, 1, 1] + {'Attributes': [{'Name': 'generic.maxHealth', 'Base': 20.0}, {'Name': 'generic.knockbackResistance', 'Base': 0.0}, {'Name': 'generic.movementSpeed', 'Base': 0.5}, {'Name': 'generic.armor', 'Base': 0.0}, {'Name': 'generic.followRange', 'Base': 16.0, 'Modifiers': [{'Name': 'Random spawn bonus', 'Operation': 1, 'Amount': -0.07807250298271795, 'UUIDLeast': -9042289162618353532, 'UUIDMost': -8050404301371587461}]}], 'Age': 0, 'UUIDLeast': -8404016208519177543, 'Motion': [0.0, -0.0784000015258789, 0.0], 'Health': 20.0, 'Inventory': [], 'HandItems': [{}, {}], 'Offers': {'Recipes': [{'maxUses': 7, 'sell': {'id': 'minecraft:emerald', 'Damage': 0, 'Count': 1}, 'buy': {'id': 'minecraft:rotten_flesh', 'Damage': 0, 'Count': 36}, 'rewardExp': 1, 'uses': 0}, {'maxUses': 7, 'sell': {'id': 'minecraft:emerald', 'Damage': 0, 'Count': 1}, 'buy': {'id': 'minecraft:gold_ingot', 'Damage': 0, 'Count': 9}, 'rewardExp': 1, 'uses': 0}]}, 'Riches': 15, 'id': 'Villager', 'CareerLevel': 1, 'Career': 1, 'ArmorItems': [{}, {}, {}, {}], 'Fire': -1, 'Invulnerable': 0, 'DeathTime': 0, 'ForcedAge': 0, 'AbsorptionAmount': 0.0, 'HurtTime': 0, 'OnGround': 1, 'UUIDMost': 1009044389481761978, 'Profession': 2, 'ArmorDropChances': [0.08500000089406967, 0.08500000089406967, 0.08500000089406967, 0.08500000089406967], 'HurtByTimestamp': 0, 'Dimension': 0, 'Air': 300, 'Willing': 0, 'CanPickUpLoot': 1, 'Pos': [-72.5, 62.0, -120.5], 'PortalCooldown': 0, 'PersistenceRequired': 1, 'HandDropChances': [0.08500000089406967, 0.08500000089406967], 'Leashed': 0, 'LeftHanded': 0, 'FallDistance': 0.0, 'Rotation': [-4.32769775390625, -3.4165501594543457]} + [2.5, 1.0, 1.5] + + + [4, 1, 1] + {'ConversionTime': -1, 'Attributes': [{'Name': 'generic.maxHealth', 'Base': 20.0}, {'Name': 'generic.knockbackResistance', 'Base': 0.0, 'Modifiers': [{'Name': 'Random spawn bonus', 'Operation': 0, 'Amount': 0.033586338385064834, 'UUIDLeast': -9185924421726330189, 'UUIDMost': -1136549371827500916}]}, {'Name': 'generic.movementSpeed', 'Base': 0.23000000417232513}, {'Name': 'generic.armor', 'Base': 2.0}, {'Name': 'generic.followRange', 'Base': 35.0, 'Modifiers': [{'Name': 'Random spawn bonus', 'Operation': 1, 'Amount': -0.013882809459502736, 'UUIDLeast': -4972655095452447334, 'UUIDMost': -7187282525081156696}]}, {'Name': 'generic.attackDamage', 'Base': 3.0}, {'Name': 'zombie.spawnReinforcements', 'Base': 0.08507647017248195}], 'UUIDLeast': -6631449421406796428, 'Motion': [0.0, -0.0784000015258789, 0.0], 'IsVillager': 1, 'Health': 19.049999237060547, 'HandItems': [{}, {}], 'VillagerProfession': 2, 'id': 'Zombie', 'ArmorItems': [{}, {}, {}, {}], 'Fire': -1, 'Invulnerable': 0, 'DeathTime': 0, 'CanBreakDoors': 0, 'AbsorptionAmount': 0.0, 'HurtTime': 0, 'OnGround': 1, 'UUIDMost': 9169347718178752431, 'ArmorDropChances': [0.08500000089406967, 0.08500000089406967, 0.08500000089406967, 0.08500000089406967], 'HurtByTimestamp': 125, 'Dimension': 0, 'Air': 300, 'CanPickUpLoot': 0, 'Pos': [-70.5, 62.0, -120.69999998807907], 'PortalCooldown': 0, 'PersistenceRequired': 1, 'HandDropChances': [0.08500000089406967, 0.08500000089406967], 'Leashed': 0, 'LeftHanded': 0, 'FallDistance': 0.0, 'Rotation': [-95.78887939453125, 0.0]} + [4.5, 1.0, 1.300000011920929] + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/igloo/igloo_middle.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/igloo/igloo_middle.xml new file mode 100644 index 00000000..efd4fa0d --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/igloo/igloo_middle.xml @@ -0,0 +1,30 @@ + + + + + + stonebrick + + + north + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Common/Media/MediaWindows64/Structures/igloo/igloo_top.xml b/Minecraft.Client/Common/Media/MediaWindows64/Structures/igloo/igloo_top.xml new file mode 100644 index 00000000..2140591b --- /dev/null +++ b/Minecraft.Client/Common/Media/MediaWindows64/Structures/igloo/igloo_top.xml @@ -0,0 +1,192 @@ + + + + + + + + + + east + + + white + + + up + + + false + south + foot + + + false + top + north + + + false + south + head + + + silver + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt1.ogg index 645bf199..a45f97a9 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt2.ogg index 3fa9d201..77dcd4a5 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt3.ogg index 89273d7a..465b6ae8 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/milk1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/milk1.ogg new file mode 100644 index 00000000..c24d7bfe Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/milk1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/milk2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/milk2.ogg new file mode 100644 index 00000000..9cd31963 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/milk2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/milk3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/milk3.ogg new file mode 100644 index 00000000..92d902fd Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/milk3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say1.ogg index 278ff272..4fdc93f8 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say2.ogg index 86c76f8f..bc6d9d27 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say3.ogg index 9feb0483..692b579c 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say4.ogg index dee0784a..e7c90786 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/babyidle3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/babyidle3.ogg new file mode 100644 index 00000000..9b0d35a9 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/babyidle3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/death1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/death1.ogg new file mode 100644 index 00000000..f4d53636 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/death1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/death2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/death2.ogg new file mode 100644 index 00000000..2a613e6a Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/death2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/death3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/death3.ogg new file mode 100644 index 00000000..a95321a7 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/death3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt1.ogg new file mode 100644 index 00000000..1cfc69d2 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt2.ogg new file mode 100644 index 00000000..f8064f96 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt3.ogg new file mode 100644 index 00000000..9505b50c Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt4.ogg new file mode 100644 index 00000000..1409d8e3 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/hurt4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idl3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idl3.ogg new file mode 100644 index 00000000..3f539a1f Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idl3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idle1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idle1.ogg new file mode 100644 index 00000000..ed4783b6 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idle1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idle2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idle2.ogg new file mode 100644 index 00000000..73b33906 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idle2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idle4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idle4.ogg new file mode 100644 index 00000000..4ed9a4a3 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/idle4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/roar1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/roar1.ogg new file mode 100644 index 00000000..ad652aaf Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/roar1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/roar2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/roar2.ogg new file mode 100644 index 00000000..c4be0c78 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/roar2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/roar3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/roar3.ogg new file mode 100644 index 00000000..8fb6fe48 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/roar3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step1.ogg new file mode 100644 index 00000000..6b8aae33 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step2.ogg new file mode 100644 index 00000000..93f07268 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step3.ogg new file mode 100644 index 00000000..664a8ffa Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step4.ogg new file mode 100644 index 00000000..70cee7de Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/polarbear/step4.ogg differ diff --git a/Minecraft.Server/cmake/sources/Common.cmake b/Minecraft.Server/cmake/sources/Common.cmake index 1dd26941..b6497ca4 100644 --- a/Minecraft.Server/cmake/sources/Common.cmake +++ b/Minecraft.Server/cmake/sources/Common.cmake @@ -413,6 +413,8 @@ set(_MINECRAFT_SERVER_COMMON_ROOT "${_MS_SRC}/../Minecraft.Client/QuadrupedModel.cpp" "${_MS_SRC}/../Minecraft.Client/RabbitModel.cpp" "${_MS_SRC}/../Minecraft.Client/RabbitRenderer.cpp" + "${_MS_SRC}/../Minecraft.Client/PolarBearModel.cpp" + "${_MS_SRC}/../Minecraft.Client/PolarBearRenderer.cpp" "${_MS_SRC}/../Minecraft.Client/Rect2i.cpp" "${_MS_SRC}/../Minecraft.Client/RedDustParticle.cpp" "${_MS_SRC}/../Minecraft.Client/RemotePlayer.cpp" diff --git a/Minecraft.World/VillagePieces.cpp b/Minecraft.World/VillagePieces.cpp index 9067506c..23713c98 100644 --- a/Minecraft.World/VillagePieces.cpp +++ b/Minecraft.World/VillagePieces.cpp @@ -555,7 +555,7 @@ bool VillagePieces::Well::postProcess(Level *level, Random *random, BoundingBox { continue; } - placeBlock(level, Tile::gravel_Id, 0, x, height - 4, z, chunkBB); + placeBlock(level, Tile::cobblestone_Id, 0, x, height - 4, z, chunkBB); generateAirColumnUp(level, x, height - 3, z, chunkBB); } } @@ -709,8 +709,8 @@ BoundingBox *VillagePieces::StraightRoad::findPieceBox(StartPiece *startPiece, l bool VillagePieces::StraightRoad::postProcess(Level *level, Random *random, BoundingBox *chunkBB) { - int roadTile = biomeBlock(Tile::gravel_Id, 0); - int baseTile = biomeBlock(Tile::cobblestone_Id, 0); + int roadTile = biomeBlock(Tile::grass_path_Id, 0); + // int baseTile = biomeBlock(Tile::cobblestone_Id, 0); for (int x = boundingBox->x0; x <= boundingBox->x1; x++) { for (int z = boundingBox->z0; z <= boundingBox->z1; z++) @@ -719,7 +719,7 @@ bool VillagePieces::StraightRoad::postProcess(Level *level, Random *random, Boun { int y = level->getTopSolidBlock(x, z) - 1; level->setTileAndData(x, y, z, roadTile, 0, Tile::UPDATE_CLIENTS); - level->setTileAndData(x, y - 1, z, baseTile, 0, Tile::UPDATE_CLIENTS); + // level->setTileAndData(x, y - 1, z, baseTile, 0, Tile::UPDATE_CLIENTS); } } } @@ -1771,6 +1771,8 @@ int VillagePieces::Farmland::selectCrops(Random *random) return Tile::carrots_Id; case 1: return Tile::potatoes_Id; + case 2: + return Tile::beetroots_Id; } } diff --git a/tools/struct_parse.py b/tools/struct_parse.py new file mode 100644 index 00000000..349097d7 --- /dev/null +++ b/tools/struct_parse.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python3 +import struct, sys, argparse +import xml.etree.ElementTree as ET + +TAG_END = 0 +TAG_BYTE = 1 +TAG_SHORT = 2 +TAG_INT = 3 +TAG_LONG = 4 +TAG_FLOAT = 5 +TAG_DOUBLE = 6 +TAG_BYTE_ARRAY = 7 +TAG_STRING = 8 +TAG_LIST = 9 +TAG_COMPOUND = 10 +TAG_INT_ARRAY = 11 + +class NBTParser: + def __init__(self, filename, endian='>'): + self.stream = open(filename, 'rb') + self.endian = endian + + def read(self, fmt): + size = struct.calcsize(fmt) + data = self.stream.read(size) + if len(data) != size: + raise EOFError("Unexpected end of file") + return struct.unpack(fmt, data)[0] + + def read_byte(self): + return self.read(self.endian + 'b') + def read_unsigned_byte(self): + return self.read(self.endian + 'B') + def read_short(self): + return self.read(self.endian + 'h') + def read_int(self): + return self.read(self.endian + 'i') + def read_long(self): + return self.read(self.endian + 'q') + def read_float(self): + return self.read(self.endian + 'f') + def read_double(self): + return self.read(self.endian + 'd') + + def read_string(self): + length = self.read(self.endian + 'h') # unsigned short + data = self.stream.read(length) + return data.decode('utf-8') + + def read_byte_array(self): + length = self.read(self.endian + 'i') + return self.stream.read(length) + + def read_int_array(self): + length = self.read(self.endian + 'i') + return [self.read_int() for _ in range(length)] + + def read_list(self): + elem_type = self.read_unsigned_byte() + count = self.read(self.endian + 'i') + return [self.read_tag_payload(elem_type) for _ in range(count)] + + def read_compound(self): + compound = {} + while True: + tag_type = self.read_unsigned_byte() + if tag_type == TAG_END: + break + name = self.read_string() + compound[name] = self.read_tag_payload(tag_type) + return compound + + def read_tag_payload(self, tag_type): + if tag_type == TAG_BYTE: + return self.read_byte() + elif tag_type == TAG_SHORT: + return self.read_short() + elif tag_type == TAG_INT: + return self.read_int() + elif tag_type == TAG_LONG: + return self.read_long() + elif tag_type == TAG_FLOAT: + return self.read_float() + elif tag_type == TAG_DOUBLE: + return self.read_double() + elif tag_type == TAG_BYTE_ARRAY: + return self.read_byte_array() + elif tag_type == TAG_STRING: + return self.read_string() + elif tag_type == TAG_LIST: + return self.read_list() + elif tag_type == TAG_COMPOUND: + return self.read_compound() + elif tag_type == TAG_INT_ARRAY: + return self.read_int_array() + else: + raise ValueError(f"Unknown tag type: {tag_type}") + + def parse(self): + root_tag = self.read_unsigned_byte() + if root_tag != TAG_COMPOUND: + raise ValueError("Expected root TAG_Compound (0x0A)") + _ = self.read_string() # root name + data = self.read_compound() + self.stream.close() + return data + +def structure_to_xml(data, xml_root_name="Structure"): + """convert nbt data into xml""" + root = ET.Element(xml_root_name) + root.set("author", str(data.get("author", "Unknown"))) + root.set("version", str(data.get("version", ""))) + # Size + size = data.get("size", [0,0,0]) + ET.SubElement(root, "Size", { + "width": str(size[0]), "height": str(size[1]), "length": str(size[2]) + }) + + # Palette + pal_elem = ET.SubElement(root, "Palette") + palette = data.get("palette", []) + for i, entry in enumerate(palette): + attrs = {"index": str(i)} + if "Name" in entry: + attrs["name"] = entry["Name"] + block_elem = ET.SubElement(pal_elem, "Block", attrs) + # add properties as subelements + props = entry.get("Properties", {}) + for prop_name, prop_value in props.items(): + prop_elem = ET.SubElement(block_elem, "Property") + prop_elem.set("name", prop_name) + prop_elem.text = str(prop_value) + + # Blocks + blocks_elem = ET.SubElement(root, "Blocks") + for blk in data.get("blocks", []): + pos = blk.get("pos", []) + state = blk.get("state", 0) + if pos and len(pos) == 3: + attrs = {"x": str(pos[0]), "y": str(pos[1]), "z": str(pos[2]), + "index": str(state)} + ET.SubElement(blocks_elem, "Block", attrs) + + # Entities + ents = data.get("entities", []) + ents_elem = ET.SubElement(root, "Entities") + for ent in ents: + ent_elem = ET.SubElement(ents_elem, "Entity") + for key, val in ent.items(): + sub = ET.SubElement(ent_elem, key) + sub.text = str(val) + return root + +def main(): + parser = argparse.ArgumentParser(description="Convert NBT structure files to XML") + parser.add_argument("inputs", nargs="+", help="Input NBT file(s)") + parser.add_argument("-l", "--little", action="store_true", + help="Assume little-endian NBT format") + parser.add_argument("-o", "--output", help="Output XML file (or directory)") + args = parser.parse_args() + + endian = '<' if args.little else '>' + for infile in args.inputs: + try: + parser_nbt = NBTParser(infile, endian=endian) + data = parser_nbt.parse() + except Exception as e: + print(f"Error parsing {infile}: {e}", file=sys.stderr) + continue + + xml_root = structure_to_xml(data) + tree = ET.ElementTree(xml_root) + outpath = args.output or infile + ".xml" + if args.output and len(args.inputs) > 1: + import os + os.makedirs(args.output, exist_ok=True) + base = os.path.basename(infile) + outpath = os.path.join(args.output, base + ".xml") + ET.indent(tree, space=" ", level=0) + tree.write(outpath, encoding="utf-8", xml_declaration=True) + print(f"Wrote XML to {outpath}") + +if __name__ == "__main__": + main()