diff --git a/TODO.md b/TODO.md index 64effb9..9ca0fd3 100644 --- a/TODO.md +++ b/TODO.md @@ -31,7 +31,7 @@ Goals left - QOL ## 0.4 * Implement antenna everywhere -* Add patterns +* Add crafting recipes for banner patterns; change item textures; remake grain * Implement new concrete * TV rework #3 (new colours, second static, ...?) * More landmines, land mine base item, create integration for it diff --git a/src/main/java/su/a71/new_soviet/registration/NSE_BaseRegistration.java b/src/main/java/su/a71/new_soviet/registration/NSE_BaseRegistration.java index 20031b7..dd74146 100644 --- a/src/main/java/su/a71/new_soviet/registration/NSE_BaseRegistration.java +++ b/src/main/java/su/a71/new_soviet/registration/NSE_BaseRegistration.java @@ -4,8 +4,10 @@ import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; import net.minecraft.block.Block; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.item.BannerPatternItem; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; @@ -20,6 +22,7 @@ import net.minecraft.util.Identifier; import java.util.Optional; import java.util.function.Supplier; +import net.minecraft.util.Rarity; import su.a71.new_soviet.NewSoviet; public class NSE_BaseRegistration { @@ -60,5 +63,17 @@ public class NSE_BaseRegistration { return TagKey.of(RegistryKeys.ITEM, new Identifier(NewSoviet.MOD_ID, name)); } + public static void registerPattern(String name, Rarity rarity, ItemGroup tab) { + BannerPattern patternThing = new BannerPattern(name); + final TagKey bannerTag = TagKey.of(RegistryKeys.BANNER_PATTERN, new Identifier(NewSoviet.MOD_ID, name)); + BannerPatternItem patternItem = new BannerPatternItem(bannerTag, new Item.Settings().rarity(rarity)); + Registry.register(Registries.ITEM, new Identifier(NewSoviet.MOD_ID, name), patternItem); + Registry.register(Registries.BANNER_PATTERN, new Identifier(NewSoviet.MOD_ID, name), patternThing); + + if (tab == null) return; // Sanity check for hidden items + Optional> key = Registries.ITEM_GROUP.getKey(tab); + key.ifPresent(itemGroupRegistryKey -> ItemGroupEvents.modifyEntriesEvent(itemGroupRegistryKey).register(content -> content.add(patternItem))); + } + public static void init() {} } diff --git a/src/main/java/su/a71/new_soviet/registration/NSE_Items.java b/src/main/java/su/a71/new_soviet/registration/NSE_Items.java index 0569383..68d4dbc 100644 --- a/src/main/java/su/a71/new_soviet/registration/NSE_Items.java +++ b/src/main/java/su/a71/new_soviet/registration/NSE_Items.java @@ -54,5 +54,8 @@ public class NSE_Items extends NSE_BaseRegistration { registerItem("antenna", () -> ANTENNA, NSE_ITEMS_TAB); registerItem("cigarette", ()-> CIGARETTE, NSE_ITEMS_TAB); registerItem("cigarette_butt", ()-> CIGARETTE_BUTT, NSE_ITEMS_TAB); + registerPattern("sickle_pattern", Rarity.UNCOMMON, NSE_ITEMS_TAB); + registerPattern("star_pattern", Rarity.UNCOMMON, NSE_ITEMS_TAB); + registerPattern("grain_pattern", Rarity.UNCOMMON, NSE_ITEMS_TAB); } } diff --git a/src/main/resources/assets/new_soviet/models/item/sickle_pattern.json b/src/main/resources/assets/new_soviet/models/item/sickle_pattern.json new file mode 100644 index 0000000..ac67fda --- /dev/null +++ b/src/main/resources/assets/new_soviet/models/item/sickle_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "new_soviet:item/pattern/sickle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/models/item/star_pattern.json b/src/main/resources/assets/new_soviet/models/item/star_pattern.json new file mode 100644 index 0000000..08ae82b --- /dev/null +++ b/src/main/resources/assets/new_soviet/models/item/star_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "new_soviet:item/pattern/star" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/textures/entity/banner/grain_pattern.png b/src/main/resources/assets/new_soviet/textures/entity/banner/grain_pattern.png new file mode 100644 index 0000000..48789bf Binary files /dev/null and b/src/main/resources/assets/new_soviet/textures/entity/banner/grain_pattern.png differ diff --git a/src/main/resources/assets/new_soviet/textures/entity/banner/sickle_pattern.png b/src/main/resources/assets/new_soviet/textures/entity/banner/sickle_pattern.png new file mode 100644 index 0000000..060715f Binary files /dev/null and b/src/main/resources/assets/new_soviet/textures/entity/banner/sickle_pattern.png differ diff --git a/src/main/resources/assets/new_soviet/textures/entity/banner/star_pattern.png b/src/main/resources/assets/new_soviet/textures/entity/banner/star_pattern.png new file mode 100644 index 0000000..355a67c Binary files /dev/null and b/src/main/resources/assets/new_soviet/textures/entity/banner/star_pattern.png differ diff --git a/src/main/resources/assets/new_soviet/textures/item/pattern/grain.png b/src/main/resources/assets/new_soviet/textures/item/pattern/grain.png new file mode 100644 index 0000000..8b80f50 Binary files /dev/null and b/src/main/resources/assets/new_soviet/textures/item/pattern/grain.png differ diff --git a/src/main/resources/assets/new_soviet/textures/item/pattern/sickle.png b/src/main/resources/assets/new_soviet/textures/item/pattern/sickle.png new file mode 100644 index 0000000..61502a8 Binary files /dev/null and b/src/main/resources/assets/new_soviet/textures/item/pattern/sickle.png differ diff --git a/src/main/resources/assets/new_soviet/textures/item/pattern/star.png b/src/main/resources/assets/new_soviet/textures/item/pattern/star.png new file mode 100644 index 0000000..ee36e1d Binary files /dev/null and b/src/main/resources/assets/new_soviet/textures/item/pattern/star.png differ diff --git a/src/main/resources/data/new_soviet/tags/banner_pattern/sickle_pattern.json b/src/main/resources/data/new_soviet/tags/banner_pattern/sickle_pattern.json new file mode 100644 index 0000000..8ee3a20 --- /dev/null +++ b/src/main/resources/data/new_soviet/tags/banner_pattern/sickle_pattern.json @@ -0,0 +1,5 @@ +{ + "values": [ + "new_soviet:sickle_pattern" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/new_soviet/tags/banner_pattern/star_pattern.json b/src/main/resources/data/new_soviet/tags/banner_pattern/star_pattern.json new file mode 100644 index 0000000..594c52c --- /dev/null +++ b/src/main/resources/data/new_soviet/tags/banner_pattern/star_pattern.json @@ -0,0 +1,5 @@ +{ + "values": [ + "new_soviet:star_pattern" + ] +} \ No newline at end of file