Skip to content

Commit c322693

Browse files
authored
Update 1.21.5 (#485)
* Update Assets * Update Protocol version * Fix generators * Add WolfSoundVariant and cleanup ICodec api * Add the rest of the variants to assets * Load required variants * Don't send data array length
1 parent 37518af commit c322693

File tree

70 files changed

+46247
-41886
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+46247
-41886
lines changed

Obsidian.API/Inventory/DataComponents/ComponentBuilder.Map.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ public partial class ComponentBuilder
2121
() => new CanBreakDataComponent(),
2222
() => AttributeModifiers,
2323
() => CustomModelData,
24-
() => HideAdditionalTooltip,
25-
() => HideTooltip,
24+
//() => HideAdditionalTooltip,
25+
//() => HideTooltip,
2626
() => RepairCost,
2727
() => CreativeSlotLock,
2828
() => EnchantmentGlintOverride,

Obsidian.API/Inventory/DataComponents/ComponentBuilder.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ public static partial class ComponentBuilder
5050
(writer, value) => writer.WriteChat(value),
5151
(reader) => reader.ReadChat());
5252

53-
public static SimpleDataComponent HideAdditionalTooltip => new(DataComponentType.HideAdditionalTooltip, "minecraft:hide_additional_tooltip");
53+
//public static SimpleDataComponent HideAdditionalTooltip => new(DataComponentType.HideAdditionalTooltip, "minecraft:hide_additional_tooltip");
5454

55-
public static SimpleDataComponent HideTooltip => new(DataComponentType.HideTooltip, "minecraft:hide_tooltip");
55+
//public static SimpleDataComponent HideTooltip => new(DataComponentType.HideTooltip, "minecraft:hide_tooltip");
5656

5757
/// <summary>
5858
/// Accumulated anvil usage cost. The client displays "Too Expensive" if the value is greater than 40 and the player is not in creative mode

Obsidian.API/Obsidian.API.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
</ItemGroup>
8686

8787
<ItemGroup>
88+
<ProjectReference Include="..\Obsidian.Nbt\Obsidian.Nbt.csproj" />
8889
<ProjectReference Include="..\Obsidian.SourceGenerators\Obsidian.SourceGenerators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
8990
</ItemGroup>
9091
</Project>
Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,34 @@
1-
namespace Obsidian.API.Registry.Codecs.ArmorTrims.TrimMaterial;
1+
using Obsidian.Nbt;
2+
using Obsidian.Nbt.Interfaces;
3+
4+
namespace Obsidian.API.Registry.Codecs.ArmorTrims.TrimMaterial;
25
public sealed class TrimMaterialCodec : ICodec
36
{
47
public required string Name { get; init; }
58

69
public required int Id { get; init; }
710

811
public required TrimMaterialElement Element { get; init; }
12+
13+
public void WriteElement(INbtWriter writer)
14+
{
15+
var description = new NbtList(NbtTagType.String, "description")
16+
{
17+
new NbtTag<string>("translate", this.Element.Description.Translate),
18+
new NbtTag<string>("color", this.Element.Description.Color!)
19+
};
20+
21+
if (this.Element.OverrideArmorAssets is Dictionary<string, string> overrideArmorMats)
22+
{
23+
var overrideArmorAssets = new NbtCompound("override_armor_assets");
24+
25+
foreach (var (type, replacement) in overrideArmorMats)
26+
overrideArmorAssets.Add(new NbtTag<string>(type, replacement));
27+
28+
writer.WriteTag(overrideArmorAssets);
29+
}
30+
31+
writer.WriteString("asset_name", this.Element.AssetName);
32+
writer.WriteTag(description);
33+
}
934
}

Obsidian.API/Registry/Codecs/ArmorTrims/TrimMaterial/TrimMaterialElement.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
using Obsidian.API.Registries;
2-
3-
namespace Obsidian.API.Registry.Codecs.ArmorTrims.TrimMaterial;
1+
namespace Obsidian.API.Registry.Codecs.ArmorTrims.TrimMaterial;
42
public sealed class TrimMaterialElement : INetworkSerializable<TrimMaterialElement>
53
{
6-
public required string Ingredient { get; init; }
7-
84
public required string AssetName { get; init; }
95

106
public required TrimDescription Description { get; init; }
@@ -14,7 +10,6 @@ public sealed class TrimMaterialElement : INetworkSerializable<TrimMaterialEleme
1410
public static TrimMaterialElement Read(INetStreamReader reader) => new()
1511
{
1612
AssetName = reader.ReadString(),
17-
Ingredient = ItemsRegistry.Get(reader.ReadVarInt()).UnlocalizedName,
1813
OverrideArmorAssets = reader.ReadLengthPrefixedArray(() =>
1914
{
2015
return (rootId: reader.ReadString(), name: reader.ReadString());
@@ -25,7 +20,6 @@ public sealed class TrimMaterialElement : INetworkSerializable<TrimMaterialEleme
2520
public static void Write(TrimMaterialElement element, INetStreamWriter writer)
2621
{
2722
writer.WriteString(element.AssetName);
28-
writer.WriteVarInt(ItemsRegistry.Get(element.Ingredient).Id);
2923

3024
var count = element.OverrideArmorAssets?.Count ?? 0;
3125
writer.WriteVarInt(count);
Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
1-
namespace Obsidian.API.Registry.Codecs.ArmorTrims.TrimPattern;
1+
using Obsidian.Nbt;
2+
using Obsidian.Nbt.Interfaces;
3+
4+
namespace Obsidian.API.Registry.Codecs.ArmorTrims.TrimPattern;
25
public sealed class TrimPatternCodec : ICodec
36
{
47
public required string Name { get; init; }
58

69
public required int Id { get; init; }
710

811
public required TrimPatternElement Element { get; init; }
12+
13+
public void WriteElement(INbtWriter writer)
14+
{
15+
var description = new NbtList(NbtTagType.String, "description")
16+
{
17+
new NbtTag<string>("translate", this.Element.Description.Translate)
18+
};
19+
20+
writer.WriteString("asset_id", this.Element.AssetId);
21+
writer.WriteBool("decal", this.Element.Decal);
22+
writer.WriteTag(description);
23+
}
924
}

Obsidian.API/Registry/Codecs/ArmorTrims/TrimPattern/TrimPatternElement.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
using Obsidian.API.Registries;
2-
3-
namespace Obsidian.API.Registry.Codecs.ArmorTrims.TrimPattern;
1+
namespace Obsidian.API.Registry.Codecs.ArmorTrims.TrimPattern;
42
public sealed class TrimPatternElement : INetworkSerializable<TrimPatternElement>
53
{
6-
public required string TemplateItem { get; init; }
7-
84
public required TrimDescription Description { get; init; }
95

106
public required string AssetId { get; init; }
@@ -14,15 +10,13 @@ public sealed class TrimPatternElement : INetworkSerializable<TrimPatternElement
1410
public static TrimPatternElement Read(INetStreamReader reader) => new()
1511
{
1612
AssetId = reader.ReadString(),
17-
TemplateItem = ItemsRegistry.Get(reader).UnlocalizedName,
1813
Description = TrimDescription.Read(reader),
1914
Decal = reader.ReadBoolean()
2015
};
2116

2217
public static void Write(TrimPatternElement value, INetStreamWriter writer)
2318
{
2419
writer.WriteString(value.AssetId);
25-
writer.WriteVarInt(ItemsRegistry.Get(value.TemplateItem).Id);
2620

2721
TrimDescription.Write(value.Description, writer);
2822
writer.WriteBoolean(value.Decal);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+

2+
using Obsidian.Nbt.Interfaces;
3+
4+
namespace Obsidian.API.Registry.Codecs;
5+
public sealed class BiomeVariantCodec : ICodec
6+
{
7+
public required string Name { get; init; }
8+
9+
public required int Id { get; init; }
10+
11+
public required BiomeVariantElement Element { get; set; }
12+
13+
public void WriteElement(INbtWriter writer) => this.Element.Write(writer);
14+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using Obsidian.Nbt;
2+
using Obsidian.Nbt.Interfaces;
3+
4+
namespace Obsidian.API.Registry.Codecs;
5+
public sealed record class BiomeVariantElement : INbtSerializable
6+
{
7+
public required string AssetId { get; set; }
8+
9+
public string? Model { get; set; }
10+
11+
public List<SpawnConditionElement> SpawnConditions { get; set; }
12+
13+
public void Write(INbtWriter writer)
14+
{
15+
writer.WriteString("asset_id", this.AssetId);
16+
17+
if(!string.IsNullOrEmpty(this.Model))
18+
writer.WriteString("model", this.Model);
19+
20+
writer.WriteListStart("spawn_conditions", NbtTagType.Compound, this.SpawnConditions.Count);
21+
22+
foreach (var spawnCondition in this.SpawnConditions)
23+
{
24+
writer.WriteCompoundStart();
25+
26+
spawnCondition.Write(writer);
27+
28+
writer.EndCompound();
29+
}
30+
31+
writer.EndList();
32+
}
33+
}
Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,43 @@
1-
namespace Obsidian.API.Registry.Codecs.Biomes;
1+
using Obsidian.Nbt;
2+
using Obsidian.Nbt.Interfaces;
23

3-
public sealed record class BiomeAdditionSound
4+
namespace Obsidian.API.Registry.Codecs.Biomes;
5+
6+
public sealed record class BiomeAdditionSound : INbtSerializable
47
{
58
public required string Sound { get; set; }
69

710
public required double TickChance { get; set; }
11+
12+
public void Write(INbtWriter writer)
13+
{
14+
writer.WriteCompoundStart("additions_sound");
15+
16+
writer.WriteString("sound", this.Sound);
17+
writer.WriteDouble("tick_chance", this.TickChance);
18+
19+
writer.EndCompound();
20+
}
821
}
922

10-
public sealed record class BiomeMoodSound
23+
public sealed record class BiomeMoodSound : INbtSerializable
1124
{
1225
public required string Sound { get; set; }
1326

1427
public required double Offset { get; set; }
1528

1629
public required int TickDelay { get; set; }
1730
public required int BlockSearchExtent { get; set; }
31+
32+
public void Write(INbtWriter writer)
33+
{
34+
writer.WriteCompoundStart("mood_sound");
35+
36+
writer.WriteString("sound", this.Sound);
37+
writer.WriteDouble("offset", this.Offset);
38+
writer.WriteInt("tick_delay", this.TickDelay);
39+
writer.WriteInt("block_search_extent", this.BlockSearchExtent);
40+
41+
writer.EndCompound();
42+
}
1843
}

0 commit comments

Comments
 (0)