diff --git a/build.gradle b/build.gradle index d9ef57a..f63e1fa 100644 --- a/build.gradle +++ b/build.gradle @@ -101,6 +101,7 @@ publishing { modrinth { token = System.getenv(modrinth_token) // DO NOT REVEAL THE TOKEN!!! projectId = mod_id + versionName = mod_name + " " + mod_version versionNumber = mod_version versionType = "beta" // release/beta/alpha uploadFile = remapJar diff --git a/gradle.properties b/gradle.properties index c17c378..5faee0e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,6 +9,7 @@ yarn_mappings=1.20.1+build.10 loader_version=0.14.23 # Mod Properties +mod_name=New Soviet Era mod_version=0.2 maven_group=su.a71 mod_id=new_soviet diff --git a/src/client/java/su/a71/new_soviet/TVBlockEntityRenderer.java b/src/client/java/su/a71/new_soviet/TVBlockEntityRenderer.java index 0c58eeb..10f0c5e 100644 --- a/src/client/java/su/a71/new_soviet/TVBlockEntityRenderer.java +++ b/src/client/java/su/a71/new_soviet/TVBlockEntityRenderer.java @@ -4,7 +4,6 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.BlockState; import net.minecraft.block.SignBlock; -import net.minecraft.client.font.TextRenderer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; diff --git a/src/main/java/su/a71/new_soviet/blocks/BoundaryMarkerBlock.java b/src/main/java/su/a71/new_soviet/blocks/BoundaryMarkerBlock.java index b8ccd18..087d3e0 100644 --- a/src/main/java/su/a71/new_soviet/blocks/BoundaryMarkerBlock.java +++ b/src/main/java/su/a71/new_soviet/blocks/BoundaryMarkerBlock.java @@ -4,7 +4,6 @@ import net.minecraft.block.*; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.fluid.FluidState; import net.minecraft.fluid.Fluids; -import net.minecraft.item.BucketItem; import net.minecraft.item.DyeItem; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; @@ -13,7 +12,6 @@ import net.minecraft.state.property.BooleanProperty; import net.minecraft.state.property.IntProperty; import net.minecraft.state.property.Properties; import net.minecraft.util.ActionResult; -import net.minecraft.util.DyeColor; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; @@ -56,7 +54,7 @@ public class BoundaryMarkerBlock extends Block implements Waterloggable { player.getInventory().getMainHandStack().decrement(1); } world.setBlockState(pos, state.with(COLOUR, id)); - world.playSound((PlayerEntity)null, pos, SoundEvents.ITEM_DYE_USE, SoundCategory.BLOCKS, 1.0F, 1.0F); + world.playSound(null, pos, SoundEvents.ITEM_DYE_USE, SoundCategory.BLOCKS, 1.0F, 1.0F); } return ActionResult.SUCCESS; } diff --git a/src/main/java/su/a71/new_soviet/blocks/ConcreteWithBarsBlock.java b/src/main/java/su/a71/new_soviet/blocks/ConcreteWithBarsBlock.java index f9c7a98..6c1ced7 100644 --- a/src/main/java/su/a71/new_soviet/blocks/ConcreteWithBarsBlock.java +++ b/src/main/java/su/a71/new_soviet/blocks/ConcreteWithBarsBlock.java @@ -1,7 +1,6 @@ package su.a71.new_soviet.blocks; import net.minecraft.block.*; -import net.minecraft.block.enums.Thickness; import net.minecraft.entity.Entity; import net.minecraft.fluid.FluidState; import net.minecraft.fluid.Fluids; @@ -16,8 +15,6 @@ import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; -import net.minecraft.world.WorldView; -import org.jetbrains.annotations.Nullable; public class ConcreteWithBarsBlock extends HorizontalFacingBlock implements Waterloggable { public static final DirectionProperty VERTICAL_DIRECTION; diff --git a/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java b/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java index a95bebf..01a42e7 100644 --- a/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java +++ b/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java @@ -1,6 +1,5 @@ package su.a71.new_soviet.blocks; -import com.mojang.authlib.minecraft.client.MinecraftClient; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.*; import net.minecraft.block.piston.PistonBehavior; @@ -67,9 +66,9 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable { if (bl) { world.scheduleBlockTick(pos, this, 4); } else { - world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).getSound(), SoundCategory.NEUTRAL, getSirenVolume(world, pos), 1f); + world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).sound(), SoundCategory.NEUTRAL, getSirenVolume(world, pos), 1f); world.setBlockState(pos, state.cycle(ON), 2); - world.scheduleBlockTick(pos, this, SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).getDuration()); + world.scheduleBlockTick(pos, this, SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).duration()); } } } @@ -81,7 +80,7 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable { if (!world.isClient) { incrementSoundIndex(world, pos); } - player.sendMessage(Text.translatable("block.new_soviet.siren.set", SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).getName()), true); + player.sendMessage(Text.translatable("block.new_soviet.siren.set", SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).name()), true); return ActionResult.SUCCESS; } return super.onUse(state, world, pos, player, hand, hit); @@ -119,8 +118,8 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable { if (state.get(ON) && !world.isReceivingRedstonePower(pos)) { world.setBlockState(pos, state.cycle(ON), 2); } else { - world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).getSound(), SoundCategory.NEUTRAL, getSirenVolume(world, pos), 1f); - world.scheduleBlockTick(pos, this, SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).getDuration()); + world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).sound(), SoundCategory.NEUTRAL, getSirenVolume(world, pos), 1f); + world.scheduleBlockTick(pos, this, SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).duration()); } } @@ -166,27 +165,6 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable { WATERLOGGED = Properties.WATERLOGGED; } - public class SirenSound { - private final SoundEvent sound; - private final int duration; - private final String name; - - public SirenSound( String name, SoundEvent sound, int duration) { - this.sound = sound; - this.duration = duration; - this.name = name; - } - - public SoundEvent getSound() { - return sound; - } - - public int getDuration() { - return duration; - } - - public String getName() { - return name; - } + public record SirenSound(String name, SoundEvent sound, int duration) { } } \ No newline at end of file diff --git a/src/main/java/su/a71/new_soviet/blocks/SwitchBlock.java b/src/main/java/su/a71/new_soviet/blocks/SwitchBlock.java index 399080c..ede6d7f 100644 --- a/src/main/java/su/a71/new_soviet/blocks/SwitchBlock.java +++ b/src/main/java/su/a71/new_soviet/blocks/SwitchBlock.java @@ -4,7 +4,6 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.*; import net.minecraft.block.enums.WallMountLocation; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.particle.DustParticleEffect; import net.minecraft.sound.SoundCategory; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; @@ -14,10 +13,10 @@ import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import net.minecraft.world.WorldAccess; import net.minecraft.world.event.GameEvent; import su.a71.new_soviet.registration.NSE_Sounds; @@ -77,14 +76,8 @@ public class SwitchBlock extends LeverBlock { return ActionResult.CONSUME; } - private static void spawnParticles(BlockState state, WorldAccess world, BlockPos pos, float alpha) { - Direction direction = state.get(FACING).getOpposite(); - Direction direction2 = SwitchBlock.getDirection(state).getOpposite(); - double d = (double)pos.getX() + 0.5 + 0.1 * (double)direction.getOffsetX() + 0.2 * (double)direction2.getOffsetX(); - double e = (double)pos.getY() + 0.5 + 0.1 * (double)direction.getOffsetY() + 0.2 * (double)direction2.getOffsetY(); - double f = (double)pos.getZ() + 0.5 + 0.1 * (double)direction.getOffsetZ() + 0.2 * (double)direction2.getOffsetZ(); - world.addParticle(new DustParticleEffect(DustParticleEffect.RED, alpha), d, e, f, 0.0, 0.0, 0.0); - } + // Remove those annoying redstone particles + public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) {} @Override protected void appendProperties(StateManager.Builder builder) { diff --git a/src/main/java/su/a71/new_soviet/datagen/Advancements.java b/src/main/java/su/a71/new_soviet/datagen/Advancements.java index 4819446..5a4d50e 100644 --- a/src/main/java/su/a71/new_soviet/datagen/Advancements.java +++ b/src/main/java/su/a71/new_soviet/datagen/Advancements.java @@ -3,20 +3,16 @@ package su.a71.new_soviet.datagen; import net.minecraft.advancement.Advancement; import net.minecraft.advancement.AdvancementFrame; import net.minecraft.advancement.criterion.InventoryChangedCriterion; -import net.minecraft.advancement.criterion.ItemCriterion; import net.minecraft.advancement.criterion.OnKilledCriterion; -import net.minecraft.advancement.criterion.PlayerHurtEntityCriterion; import net.minecraft.item.Items; import net.minecraft.predicate.entity.DamageSourcePredicate; import net.minecraft.predicate.entity.EntityEquipmentPredicate; import net.minecraft.predicate.entity.EntityPredicate; import net.minecraft.predicate.item.ItemPredicate; -import net.minecraft.registry.tag.ItemTags; import net.minecraft.text.Text; import net.minecraft.util.Identifier; import su.a71.new_soviet.NewSoviet; import su.a71.new_soviet.registration.NSE_Items; -import su.a71.new_soviet.registration.NSE_Tags; import java.util.function.Consumer; diff --git a/src/main/java/su/a71/new_soviet/datagen/ModelGenerator.java b/src/main/java/su/a71/new_soviet/datagen/ModelGenerator.java index 8973ed4..f976212 100644 --- a/src/main/java/su/a71/new_soviet/datagen/ModelGenerator.java +++ b/src/main/java/su/a71/new_soviet/datagen/ModelGenerator.java @@ -4,13 +4,10 @@ package su.a71.new_soviet.datagen; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider; import net.minecraft.block.Block; -import net.minecraft.block.PaneBlock; import net.minecraft.block.SlabBlock; import net.minecraft.block.StairsBlock; import net.minecraft.data.client.*; -import net.minecraft.item.Item; import net.minecraft.registry.Registries; -import net.minecraft.state.property.Properties; import net.minecraft.util.Identifier; import su.a71.new_soviet.registration.NSE_Blocks; @@ -61,18 +58,6 @@ public class ModelGenerator extends FabricModelProvider { blockStateModelGenerator.blockStateCollector.accept(BlockStateModelGenerator.createStairsBlockState(stairs, stairs_model_inner, stairs_model, stairs_model_outer)); } -// public final void registerPaneFence(BlockStateModelGenerator blockStateModelGenerator, PaneBlock block, String texturePath) { -// TextureMap textureMap = (new TextureMap()).put(TextureKey.PANE, getId(block)).put(TextureKey.EDGE, getSubId(top, "_top")); -// Identifier identifier = Models.TEMPLATE_GLASS_PANE_POST.upload(glassPane, textureMap, this.modelCollector); -// Identifier identifier2 = Models.TEMPLATE_GLASS_PANE_SIDE.upload(glassPane, textureMap, this.modelCollector); -// Identifier identifier3 = Models.TEMPLATE_GLASS_PANE_SIDE_ALT.upload(glassPane, textureMap, this.modelCollector); -// Identifier identifier4 = Models.TEMPLATE_GLASS_PANE_NOSIDE.upload(glassPane, textureMap, this.modelCollector); -// Identifier identifier5 = Models.TEMPLATE_GLASS_PANE_NOSIDE_ALT.upload(glassPane, textureMap, this.modelCollector); -// Item item = glassPane.asItem(); -// Models.GENERATED.upload(ModelIds.getItemModelId(item), TextureMap.layer0(glass), this.modelCollector); -// this.blockStateCollector.accept(MultipartBlockStateSupplier.create(glassPane).with(BlockStateVariant.create().put(VariantSettings.MODEL, identifier)).with(When.create().set(Properties.NORTH, true), BlockStateVariant.create().put(VariantSettings.MODEL, identifier2)).with(When.create().set(Properties.EAST, true), BlockStateVariant.create().put(VariantSettings.MODEL, identifier2).put(VariantSettings.Y, VariantSettings.Rotation.R90)).with(When.create().set(Properties.SOUTH, true), BlockStateVariant.create().put(VariantSettings.MODEL, identifier3)).with(When.create().set(Properties.WEST, true), BlockStateVariant.create().put(VariantSettings.MODEL, identifier3).put(VariantSettings.Y, VariantSettings.Rotation.R90)).with(When.create().set(Properties.NORTH, false), BlockStateVariant.create().put(VariantSettings.MODEL, identifier4)).with(When.create().set(Properties.EAST, false), BlockStateVariant.create().put(VariantSettings.MODEL, identifier5)).with(When.create().set(Properties.SOUTH, false), BlockStateVariant.create().put(VariantSettings.MODEL, identifier5).put(VariantSettings.Y, VariantSettings.Rotation.R90)).with(When.create().set(Properties.WEST, false), BlockStateVariant.create().put(VariantSettings.MODEL, identifier4).put(VariantSettings.Y, VariantSettings.Rotation.R270))); -// } - @Override public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGenerator) { registerDoor(blockStateModelGenerator, NSE_Blocks.CHISELED_BIRCH_DOOR); diff --git a/src/main/java/su/a71/new_soviet/datagen/RecipeGenerator.java b/src/main/java/su/a71/new_soviet/datagen/RecipeGenerator.java index 6a72392..560f925 100644 --- a/src/main/java/su/a71/new_soviet/datagen/RecipeGenerator.java +++ b/src/main/java/su/a71/new_soviet/datagen/RecipeGenerator.java @@ -9,12 +9,10 @@ import net.minecraft.data.server.recipe.RecipeJsonProvider; import net.minecraft.data.server.recipe.RecipeProvider; import net.minecraft.data.server.recipe.ShapedRecipeJsonBuilder; import net.minecraft.data.server.recipe.ShapelessRecipeJsonBuilder; -import net.minecraft.item.DyeItem; import net.minecraft.item.ItemConvertible; import net.minecraft.item.Items; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.book.RecipeCategory; -import net.minecraft.registry.tag.BlockTags; import net.minecraft.registry.tag.ItemTags; import net.minecraft.util.Util; import su.a71.new_soviet.registration.NSE_Blocks; @@ -156,102 +154,6 @@ public class RecipeGenerator extends FabricRecipeProvider { .offerTo(exporter); } - private void radioRecipe(Consumer exporter, ItemConvertible output) { - ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, output, 1) - .pattern(" N") - .pattern("MMM") - .pattern("III") - .input('M', Blocks.NOTE_BLOCK) - .input('N', Items.IRON_NUGGET) - .input('I', Items.IRON_INGOT) - .criterion(RecipeProvider.hasItem(Items.IRON_NUGGET), - RecipeProvider.conditionsFromItem(Items.IRON_NUGGET)) - .criterion(RecipeProvider.hasItem(Items.NOTE_BLOCK), - RecipeProvider.conditionsFromItem(Items.NOTE_BLOCK)) - .criterion(RecipeProvider.hasItem(Items.IRON_INGOT), - RecipeProvider.conditionsFromItem(Items.IRON_INGOT)) - .offerTo(exporter); - } - - private void ceilingFanRecipe(Consumer exporter, ItemConvertible output) { - ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, output, 1) - .pattern(" I ") - .pattern("NNN") - .input('I', Items.IRON_INGOT) - .input('N', Items.IRON_NUGGET) - .criterion(RecipeProvider.hasItem(Items.IRON_NUGGET), - RecipeProvider.conditionsFromItem(Items.IRON_NUGGET)) - .criterion(RecipeProvider.hasItem(Items.IRON_INGOT), - RecipeProvider.conditionsFromItem(Items.IRON_INGOT)) - .offerTo(exporter); - } - - private void tableLampRecipe(Consumer exporter, ItemConvertible output) { - ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, output, 3) - .pattern("WWW") - .pattern("WTW") - .pattern(" S ") - - .input('S', Items.STICK) - .input('T', Items.TORCH) - .input('W', ItemTags.WOOL) - .criterion(RecipeProvider.hasItem(Items.TORCH), - RecipeProvider.conditionsFromItem(Items.TORCH)) - .criterion(RecipeProvider.hasItem(Items.STICK), - RecipeProvider.conditionsFromItem(Items.STICK)) - .criterion("has_wool", RecipeProvider.conditionsFromTag(ItemTags.WOOL)) - .offerTo(exporter); - } - - private void vintageLampRecipe(Consumer exporter, ItemConvertible output) { - ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, output, 3) - .pattern("NNN") - .pattern("GTG") - .pattern(" N ") - - .input('N', Items.IRON_NUGGET) - .input('T', Items.TORCH) - .input('G', Items.GREEN_STAINED_GLASS) - .criterion(RecipeProvider.hasItem(Items.TORCH), - RecipeProvider.conditionsFromItem(Items.TORCH)) - .criterion(RecipeProvider.hasItem(Items.IRON_NUGGET), - RecipeProvider.conditionsFromItem(Items.IRON_NUGGET)) - .criterion(RecipeProvider.hasItem(Items.GREEN_STAINED_GLASS), - RecipeProvider.conditionsFromItem(Items.GREEN_STAINED_GLASS)) - .offerTo(exporter); - } - - private void sickleRecipe(Consumer exporter, ItemConvertible output) { - ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, output, 1) - .pattern(" I ") - .pattern(" I") - .pattern(" S ") - .input('S', Items.STICK) - .input('I', Items.IRON_INGOT) - .criterion(RecipeProvider.hasItem(Items.STICK), - RecipeProvider.conditionsFromItem(Items.STICK)) - .criterion(RecipeProvider.hasItem(Items.IRON_INGOT), - RecipeProvider.conditionsFromItem(Items.IRON_INGOT)) - .offerTo(exporter); - } - - private void rakeRecipe(Consumer exporter, ItemConvertible output) { - ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, output, 1) - .pattern("III") - .pattern(" N ") - .pattern(" S ") - .input('S', Items.STICK) - .input('I', Items.IRON_INGOT) - .input('N', Items.IRON_NUGGET) - .criterion(RecipeProvider.hasItem(Items.STICK), - RecipeProvider.conditionsFromItem(Items.STICK)) - .criterion(RecipeProvider.hasItem(Items.IRON_INGOT), - RecipeProvider.conditionsFromItem(Items.IRON_INGOT)) - .criterion(RecipeProvider.hasItem(Items.IRON_NUGGET), - RecipeProvider.conditionsFromItem(Items.IRON_NUGGET)) - .offerTo(exporter); - } - private void offerStairsAndSlab(Consumer exporter, ItemConvertible output_stairs, ItemConvertible output_slab, ItemConvertible input) { createStairsRecipe(output_stairs, Ingredient.ofItems(input)) .criterion(hasItem(input), conditionsFromItem(input)).offerTo(exporter); @@ -272,12 +174,6 @@ public class RecipeGenerator extends FabricRecipeProvider { tvRecipe(exporter, NSE_Custom.TV, Items.ORANGE_DYE); tvRecipe(exporter, NSE_Custom.BROWN_TV, Items.BROWN_DYE); tvRecipe(exporter, NSE_Custom.RED_TV, Items.RED_DYE); - radioRecipe(exporter, NSE_Custom.RADIO_RECEIVER); - ceilingFanRecipe(exporter, NSE_Custom.CEILING_FAN); - tableLampRecipe(exporter, NSE_Custom.TABLE_LAMP); - vintageLampRecipe(exporter, NSE_Custom.VINTAGE_LAMP); - sickleRecipe(exporter, NSE_Items.SICKLE); - rakeRecipe(exporter, NSE_Items.RAKE); // Cracked blocks offerCrackingRecipe(exporter, NSE_Blocks.CRACKED_BRICK_TILES, NSE_Blocks.BRICK_TILES); @@ -540,6 +436,90 @@ public class RecipeGenerator extends FabricRecipeProvider { offerStonecuttingRecipe(exporter, RecipeCategory.BUILDING_BLOCKS, NSE_Blocks.CHISELED_SPRUCE_DOOR, Blocks.SPRUCE_DOOR); offerStonecuttingRecipe(exporter, RecipeCategory.BUILDING_BLOCKS, NSE_Blocks.CHISELED_BIRCH_DOOR, Blocks.BIRCH_DOOR); + ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, NSE_Custom.RADIO_RECEIVER, 1) + .pattern(" N") + .pattern("MMM") + .pattern("III") + .input('M', Blocks.NOTE_BLOCK) + .input('N', Items.IRON_NUGGET) + .input('I', Items.IRON_INGOT) + .criterion(RecipeProvider.hasItem(Items.IRON_NUGGET), + RecipeProvider.conditionsFromItem(Items.IRON_NUGGET)) + .criterion(RecipeProvider.hasItem(Items.NOTE_BLOCK), + RecipeProvider.conditionsFromItem(Items.NOTE_BLOCK)) + .criterion(RecipeProvider.hasItem(Items.IRON_INGOT), + RecipeProvider.conditionsFromItem(Items.IRON_INGOT)) + .offerTo(exporter); + + ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, NSE_Custom.CEILING_FAN, 1) + .pattern(" I ") + .pattern("NNN") + .input('I', Items.IRON_INGOT) + .input('N', Items.IRON_NUGGET) + .criterion(RecipeProvider.hasItem(Items.IRON_NUGGET), + RecipeProvider.conditionsFromItem(Items.IRON_NUGGET)) + .criterion(RecipeProvider.hasItem(Items.IRON_INGOT), + RecipeProvider.conditionsFromItem(Items.IRON_INGOT)) + .offerTo(exporter); + + ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, NSE_Custom.TABLE_LAMP, 3) + .pattern("WWW") + .pattern("WTW") + .pattern(" S ") + + .input('S', Items.STICK) + .input('T', Items.TORCH) + .input('W', ItemTags.WOOL) + .criterion(RecipeProvider.hasItem(Items.TORCH), + RecipeProvider.conditionsFromItem(Items.TORCH)) + .criterion(RecipeProvider.hasItem(Items.STICK), + RecipeProvider.conditionsFromItem(Items.STICK)) + .criterion("has_wool", RecipeProvider.conditionsFromTag(ItemTags.WOOL)) + .offerTo(exporter); + + ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, NSE_Custom.VINTAGE_LAMP, 3) + .pattern("NNN") + .pattern("GTG") + .pattern(" N ") + + .input('N', Items.IRON_NUGGET) + .input('T', Items.TORCH) + .input('G', Items.GREEN_STAINED_GLASS) + .criterion(RecipeProvider.hasItem(Items.TORCH), + RecipeProvider.conditionsFromItem(Items.TORCH)) + .criterion(RecipeProvider.hasItem(Items.IRON_NUGGET), + RecipeProvider.conditionsFromItem(Items.IRON_NUGGET)) + .criterion(RecipeProvider.hasItem(Items.GREEN_STAINED_GLASS), + RecipeProvider.conditionsFromItem(Items.GREEN_STAINED_GLASS)) + .offerTo(exporter); + + ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, NSE_Items.SICKLE, 1) + .pattern(" I ") + .pattern(" I") + .pattern(" S ") + .input('S', Items.STICK) + .input('I', Items.IRON_INGOT) + .criterion(RecipeProvider.hasItem(Items.STICK), + RecipeProvider.conditionsFromItem(Items.STICK)) + .criterion(RecipeProvider.hasItem(Items.IRON_INGOT), + RecipeProvider.conditionsFromItem(Items.IRON_INGOT)) + .offerTo(exporter); + + ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, NSE_Items.RAKE, 1) + .pattern("III") + .pattern(" N ") + .pattern(" S ") + .input('S', Items.STICK) + .input('I', Items.IRON_INGOT) + .input('N', Items.IRON_NUGGET) + .criterion(RecipeProvider.hasItem(Items.STICK), + RecipeProvider.conditionsFromItem(Items.STICK)) + .criterion(RecipeProvider.hasItem(Items.IRON_INGOT), + RecipeProvider.conditionsFromItem(Items.IRON_INGOT)) + .criterion(RecipeProvider.hasItem(Items.IRON_NUGGET), + RecipeProvider.conditionsFromItem(Items.IRON_NUGGET)) + .offerTo(exporter); + ShapedRecipeJsonBuilder.create(RecipeCategory.MISC, NSE_Items.LIGHT_BULB, 1) .input('B', Items.GLASS_BOTTLE).input('N', Items.IRON_NUGGET).input('D', Items.GLOWSTONE_DUST) .pattern(" D ").pattern(" B ").pattern(" N ") diff --git a/src/main/java/su/a71/new_soviet/items/CigaretteItem.java b/src/main/java/su/a71/new_soviet/items/CigaretteItem.java index 8b01af2..35a7cf3 100644 --- a/src/main/java/su/a71/new_soviet/items/CigaretteItem.java +++ b/src/main/java/su/a71/new_soviet/items/CigaretteItem.java @@ -13,10 +13,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.entity.LivingEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Hand; -import net.minecraft.util.TypedActionResult; import org.jetbrains.annotations.Nullable; import su.a71.new_soviet.NewSoviet; import su.a71.new_soviet.registration.NSE_Sounds;