Add banner pattern crafting recipes

This commit is contained in:
Andrew-71 2024-03-12 19:31:09 +03:00
parent dd57456e60
commit daef439632
12 changed files with 230 additions and 29 deletions

View file

@ -74,7 +74,7 @@ Due to sheer amount of changes, some may be undocumented. We hope you enjoy this
* Now uses screwdriver to change sound
* Sound names now translated
* Added a questionable sound option
* At least 1 new advancement
* At least 2 new advancements
* Bug fixes
* Stone-cutting recipe for slabs now gives 2 blocks
* Fixed typos in Russian translation

View file

@ -10,9 +10,6 @@
* Add rubbish, rocks
* Figure out electronic devices - function
=== ACHIEVEMENTS ===
* Chicken kiev - kill a chicken with aspect of fire sickle
=== VERSION SPECIFIC ===
## 0.3
Goals left - QOL
@ -20,13 +17,10 @@ Goals left - QOL
* Better feedback - particles, noises ~+-
## 0.4
* Add crafting recipes for banner patterns; re-make grain?
* Concrete with bars 2 axis rotation
* TV rework #3 (new colours, second static, ...?)
* More landmines, land mine base item, create integration for it
* Rework cigarette (code and some functionality)
* Missing warning stripes?
* Fix banner registration not having items, add crafting recipes
## Pre ~~flight~~ update checklist
* Update ru_ru and ru_rpr translations

View file

@ -0,0 +1,48 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_paper": {
"conditions": {
"items": [
{
"items": [
"new_soviet:grain_pattern"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "new_soviet:grain_pattern"
},
"trigger": "minecraft:recipe_unlocked"
},
"has_wheat": {
"conditions": {
"items": [
{
"items": [
"new_soviet:grain_pattern"
]
}
]
},
"trigger": "minecraft:inventory_changed"
}
},
"requirements": [
[
"has_paper",
"has_wheat",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"new_soviet:grain_pattern"
]
},
"sends_telemetry_event": false
}

View file

@ -0,0 +1,48 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_paper": {
"conditions": {
"items": [
{
"items": [
"new_soviet:sickle_pattern"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_sickle": {
"conditions": {
"items": [
{
"items": [
"new_soviet:sickle_pattern"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "new_soviet:sickle_pattern"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_paper",
"has_sickle",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"new_soviet:sickle_pattern"
]
},
"sends_telemetry_event": false
}

View file

@ -0,0 +1,61 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_paper": {
"conditions": {
"items": [
{
"items": [
"new_soviet:star_pattern"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_red_dye": {
"conditions": {
"items": [
{
"items": [
"new_soviet:star_pattern"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_sickle": {
"conditions": {
"items": [
{
"items": [
"new_soviet:star_pattern"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "new_soviet:star_pattern"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_paper",
"has_sickle",
"has_red_dye",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"new_soviet:star_pattern"
]
},
"sends_telemetry_event": false
}

View file

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "minecraft:paper"
},
{
"item": "minecraft:wheat"
}
],
"result": {
"item": "new_soviet:grain_pattern"
}
}

View file

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "minecraft:paper"
},
{
"item": "new_soviet:sickle"
}
],
"result": {
"item": "new_soviet:sickle_pattern"
}
}

View file

@ -0,0 +1,18 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "minecraft:paper"
},
{
"item": "new_soviet:sickle"
},
{
"item": "minecraft:red_dye"
}
],
"result": {
"item": "new_soviet:star_pattern"
}
}

View file

@ -1,17 +0,0 @@
package su.a71.new_soviet.blocks.lamps;
import su.a71.new_soviet.util.Shapes;
import java.util.List;
public class DevTableLampBlock extends GoldenTableLampBlock {
public DevTableLampBlock(Settings settings) {
super(settings);
SHAPE = new Shapes.HorizontalShapeLegacy(List.of(
List.of(5.0, 0.0, 5.0, 11.0, 2.0, 11.0),
List.of(7.0, 2.0, 7.0, 9.0, 4.0, 9.0),
List.of(6.0, 4.0, 6.0, 10.0, 5.0, 10.0),
List.of(3.0, 9.0, 3.0, 13.0, 13.0, 7.0)));
}
}

View file

@ -913,5 +913,19 @@ public class RecipeGenerator extends FabricRecipeProvider {
.criterion(hasItem(Items.IRON_INGOT), conditionsFromItem(Items.IRON_INGOT))
.criterion(hasItem(Items.STICK), conditionsFromItem(Items.STICK))
.offerTo(exporter);
ShapelessRecipeJsonBuilder.create(RecipeCategory.MISC, NSE_Items.SICKLE_PATTERN).input(Items.PAPER).input(NSE_Items.SICKLE)
.criterion(FabricRecipeProvider.hasItem(Items.PAPER), FabricRecipeProvider.conditionsFromItem(NSE_Items.SICKLE_PATTERN))
.criterion(FabricRecipeProvider.hasItem(NSE_Items.SICKLE), FabricRecipeProvider.conditionsFromItem(NSE_Items.SICKLE_PATTERN))
.offerTo(exporter);
ShapelessRecipeJsonBuilder.create(RecipeCategory.MISC, NSE_Items.STAR_PATTERN).input(Items.PAPER).input(NSE_Items.SICKLE).input(Items.RED_DYE)
.criterion(FabricRecipeProvider.hasItem(Items.PAPER), FabricRecipeProvider.conditionsFromItem(NSE_Items.STAR_PATTERN))
.criterion(FabricRecipeProvider.hasItem(NSE_Items.SICKLE), FabricRecipeProvider.conditionsFromItem(NSE_Items.STAR_PATTERN))
.criterion(FabricRecipeProvider.hasItem(Items.RED_DYE), FabricRecipeProvider.conditionsFromItem(NSE_Items.STAR_PATTERN))
.offerTo(exporter);
ShapelessRecipeJsonBuilder.create(RecipeCategory.MISC, NSE_Items.GRAIN_PATTERN).input(Items.PAPER).input(Items.WHEAT)
.criterion(FabricRecipeProvider.hasItem(Items.PAPER), FabricRecipeProvider.conditionsFromItem(NSE_Items.GRAIN_PATTERN))
.criterion(FabricRecipeProvider.hasItem(Items.WHEAT), FabricRecipeProvider.conditionsFromItem(NSE_Items.GRAIN_PATTERN))
.offerTo(exporter);
}
}

View file

@ -63,16 +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) {
public static BannerPatternItem registerPattern(String name, Rarity rarity, ItemGroup tab) {
BannerPattern patternThing = new BannerPattern(name);
final TagKey<BannerPattern> 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
if (tab == null) return patternItem; // Sanity check for hidden items
Optional<RegistryKey<ItemGroup>> key = Registries.ITEM_GROUP.getKey(tab);
key.ifPresent(itemGroupRegistryKey -> ItemGroupEvents.modifyEntriesEvent(itemGroupRegistryKey).register(content -> content.add(patternItem)));
return patternItem;
}
public static void init() {}

View file

@ -39,6 +39,10 @@ public class NSE_Items extends NSE_BaseRegistration {
public static final MusicDiscItem MUSIC_DISC_USSR_ANTHEM = new MusicDiscItem(1, NSE_Sounds.MUSIC_USSR_ANTHEM, new Item.Settings().maxCount(1), 206);
public static BannerPatternItem SICKLE_PATTERN;
public static BannerPatternItem STAR_PATTERN;
public static BannerPatternItem GRAIN_PATTERN;
private static final ItemGroup NSE_ITEMS_TAB = FabricItemGroup.builder()
.icon(() -> new ItemStack(SICKLE))
.displayName(Text.translatable("itemGroup.new_soviet.items"))
@ -58,9 +62,9 @@ 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);
SICKLE_PATTERN = registerPattern("sickle_pattern", Rarity.UNCOMMON, NSE_ITEMS_TAB);
STAR_PATTERN = registerPattern("star_pattern", Rarity.UNCOMMON, NSE_ITEMS_TAB);
GRAIN_PATTERN = registerPattern("grain_pattern", Rarity.UNCOMMON, NSE_ITEMS_TAB);
registerItem("music_disc_ussr_anthem", () -> MUSIC_DISC_USSR_ANTHEM, NSE_ITEMS_TAB);
}