From d99e8fd54c7b6522fcc5ac692087adf8dc2226e2 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sun, 6 Aug 2023 17:37:19 +0300 Subject: [PATCH] Lightbulb and fixes --- LICENSE | 37 +++++++ TODO | 7 +- .../a71/new_soviet/blocks/LightBulbBlock.java | 90 ++++++++++++++++++ .../su/a71/new_soviet/blocks/SirenBlock.java | 5 - .../new_soviet/registration/NSE_Custom.java | 5 + .../new_soviet/blockstates/light_bulb.json | 16 ++++ .../assets/new_soviet/lang/en_us.json | 4 +- .../models/block/light_bulb_broken.json | 84 ++++++++++++++++ .../models/block/light_bulb_off.json | 7 ++ .../models/block/light_bulb_on.json | 83 ++++++++++++++++ .../new_soviet/models/item/light_bulb.json | 3 + .../resources/assets/new_soviet/sounds.json | 6 ++ .../assets/new_soviet/sounds/LICENSE | 1 + .../new_soviet/sounds/light_bulb_broken.ogg | Bin 0 -> 17313 bytes .../block/custom/furniture/light_bulb_off.png | Bin 0 -> 276 bytes .../block/custom/furniture/light_bulb_on.png | Bin 0 -> 306 bytes 16 files changed, 338 insertions(+), 10 deletions(-) create mode 100644 LICENSE create mode 100644 src/main/java/su/a71/new_soviet/blocks/LightBulbBlock.java create mode 100644 src/main/resources/assets/new_soviet/blockstates/light_bulb.json create mode 100644 src/main/resources/assets/new_soviet/models/block/light_bulb_broken.json create mode 100644 src/main/resources/assets/new_soviet/models/block/light_bulb_off.json create mode 100644 src/main/resources/assets/new_soviet/models/block/light_bulb_on.json create mode 100644 src/main/resources/assets/new_soviet/models/item/light_bulb.json create mode 100644 src/main/resources/assets/new_soviet/sounds/LICENSE create mode 100644 src/main/resources/assets/new_soviet/sounds/light_bulb_broken.ogg create mode 100644 src/main/resources/assets/new_soviet/textures/block/custom/furniture/light_bulb_off.png create mode 100644 src/main/resources/assets/new_soviet/textures/block/custom/furniture/light_bulb_on.png diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a95baeb --- /dev/null +++ b/LICENSE @@ -0,0 +1,37 @@ +The following directory, it's subdirectories, and any files inside said directories or subdirectories are subject to +the license below. +The only exceptions are files in /src/main/resources/assets/new_soviet/sounds, see relevant LICENSE file there + +/src/main/resources/ + +All Rights Reserved +Copyright (c) 2023 Andrey Nikitin and Рюжин Юрий. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +All other files within this repository are subject to the license below. + +MIT License + +Copyright (c) 2023 Andrey Nikitin. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/TODO b/TODO index ae5ee0d..d35572a 100644 --- a/TODO +++ b/TODO @@ -1,21 +1,20 @@ === ADD BLOCKS/FEATURES === -* Add brown+white+yellow+red+green blocks +* Add brown+yellow+red+green blocks * Add slab and stair variations * Add doors and fences * Add windows * Add (with functionality) present appliance/furniture/electronics textures * Figure out what to do with "NII wall", nii floor, tilled block -* Add achievement criterion for dice +* Add achievement criterion for dice and advancements === FIX STUFF === * PO2 wall -* Replace a ton of stuff with FabricBlockSettings.copy and resistance+hardness -> strength +* Crate (likely cheap shulker box with small capacity) === NON-GAME CHANGES === * Minotaur publishing to modrinth and something similar for curse * git.a71.su maven * Good README.md and icon, assets, screenshots etc. -* mkDocs for recipes and more === ACHIEVEMENTS === Kolkhoz warrior - kill a zombie, skeleton, creeper and spider with a sickle \ No newline at end of file diff --git a/src/main/java/su/a71/new_soviet/blocks/LightBulbBlock.java b/src/main/java/su/a71/new_soviet/blocks/LightBulbBlock.java new file mode 100644 index 0000000..7e28816 --- /dev/null +++ b/src/main/java/su/a71/new_soviet/blocks/LightBulbBlock.java @@ -0,0 +1,90 @@ +package su.a71.new_soviet.blocks; + +import net.minecraft.block.*; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.projectile.ProjectileEntity; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.state.property.Property; +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.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import net.minecraft.world.WorldView; +import org.jetbrains.annotations.Nullable; +import su.a71.new_soviet.registration.NSE_Custom; + +public class LightBulbBlock extends Block { + protected static final VoxelShape SHAPE; + public static final BooleanProperty ON; + public static final BooleanProperty BROKEN; + + public LightBulbBlock(Block.Settings settings) { + super(settings); + this.setDefaultState((BlockState)this.getDefaultState().with(ON, false).with(BROKEN, false)); + } + + @Nullable + public BlockState getPlacementState(ItemPlacementContext ctx) { + return (BlockState)this.getDefaultState().with(ON, ctx.getWorld().isReceivingRedstonePower(ctx.getBlockPos())).with(BROKEN, false); + } + + public void neighborUpdate(BlockState state, World world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) { + if (!world.isClient) { + boolean bl = (Boolean)state.get(ON); + if (bl != world.isReceivingRedstonePower(pos)) { + if (bl) { + world.scheduleBlockTick(pos, this, 4); + } else { + world.setBlockState(pos, (BlockState)state.cycle(ON), 2); + } + } + } + } + + @Override + public void onProjectileHit(World world, BlockState state, BlockHitResult hit, ProjectileEntity projectile) { + if (!state.get(BROKEN)) { + world.playSound((PlayerEntity)null, hit.getBlockPos().getX(), hit.getBlockPos().getY(), hit.getBlockPos().getZ(), NSE_Custom.LIGHT_BULB_BROKEN_SOUND, SoundCategory.NEUTRAL, 0.8f, 1f); + } + world.setBlockState(hit.getBlockPos(), (BlockState)state.with(BROKEN, true).with(ON, false), 2); + super.onProjectileHit(world, state, hit, projectile); + } + + public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + if ((Boolean)state.get(ON) && !world.isReceivingRedstonePower(pos)) { + world.setBlockState(pos, (BlockState)state.cycle(ON), 2); + } + } + + protected void appendProperties(StateManager.Builder builder) { + builder.add(new Property[]{ON, BROKEN}); + } + + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + if (state.get(BROKEN)) { + return SHAPE; + } + return VoxelShapes.union(SHAPE, Block.createCuboidShape(7, 3, 7, 10, 6, 10).offset(-0.03125, 0, -0.03125)); + + } + + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + Direction direction = Direction.UP; + return Block.sideCoversSmallSquare(world, pos.offset(direction), direction.getOpposite()); + } + + static { + SHAPE = VoxelShapes.union(Block.createCuboidShape(7, 15, 7, 9, 16, 9), Block.createCuboidShape(7, 6, 7, 9, 8, 9)); //VoxelShapes.union(Block.createCuboidShape(4.0, 2.0, 4.0, 12.0, 7.0, 12.0), Block.createCuboidShape(7.0, 7.0, 7.0, 9.0, 13.0, 9.0), Block.createCuboidShape(6.0, 13.0, 6.0, 10.0, 16.0, 10.0)); + ON = RedstoneTorchBlock.LIT; + BROKEN = Properties.CRACKED; + } +} \ No newline at end of file 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 3aefb24..9b6a378 100644 --- a/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java +++ b/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java @@ -20,7 +20,6 @@ import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldView; -import su.a71.new_soviet.NewSoviet; import su.a71.new_soviet.registration.NSE_Custom; public class SirenBlock extends HorizontalFacingBlock { @@ -81,13 +80,9 @@ public class SirenBlock extends HorizontalFacingBlock { } public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { - NewSoviet.LOG.info("Scheduled tick"); if ((Boolean)state.get(ON) && !world.isReceivingRedstonePower(pos)) { world.setBlockState(pos, (BlockState)state.cycle(ON), 2); - NewSoviet.LOG.info("Stopping!"); - } else { - NewSoviet.LOG.info("Playing!"); world.playSound((PlayerEntity)null, pos.getX(), pos.getY(), pos.getZ(), NSE_Custom.SIREN_SOUND, SoundCategory.NEUTRAL, getSirenVolume(world, pos), 1f); world.scheduleBlockTick(pos, this, 140); } diff --git a/src/main/java/su/a71/new_soviet/registration/NSE_Custom.java b/src/main/java/su/a71/new_soviet/registration/NSE_Custom.java index 9e9660b..aeccdde 100644 --- a/src/main/java/su/a71/new_soviet/registration/NSE_Custom.java +++ b/src/main/java/su/a71/new_soviet/registration/NSE_Custom.java @@ -29,6 +29,9 @@ public class NSE_Custom { public static final TVBlock BROWN_TV = new TVBlock(FabricBlockSettings.create().mapColor(MapColor.TERRACOTTA_BROWN)); public static final RadioBlock RADIO = new RadioBlock(); public static final LampBlock LAMP = new LampBlock(FabricBlockSettings.create().sounds(BlockSoundGroup.LANTERN).strength(1f, 1.5f).mapColor(MapColor.WHITE)); + public static final LightBulbBlock LIGHT_BULB = new LightBulbBlock(FabricBlockSettings.create().sounds(BlockSoundGroup.LANTERN).strength(1f, 1.5f).mapColor(MapColor.WHITE)); + public static final SoundEvent LIGHT_BULB_BROKEN_SOUND = SoundEvent.of(new Identifier("new_soviet", "light_bulb_broken_sound")); + public static final CeilingFanBlock CEILING_FAN = new CeilingFanBlock(FabricBlockSettings.create().sounds(BlockSoundGroup.METAL).strength(1f, 1.5f).mapColor(MapColor.WHITE)); public static final SirenBlock SIREN = new SirenBlock(); @@ -58,9 +61,11 @@ public class NSE_Custom { register("brown_tv", () -> BROWN_TV, NSE_CUSTOM_TAB); register("radio", () -> RADIO, NSE_CUSTOM_TAB); register("lamp", () -> LAMP, NSE_CUSTOM_TAB); + register("light_bulb", () -> LIGHT_BULB, NSE_CUSTOM_TAB); register("ceiling_fan", () -> CEILING_FAN, NSE_CUSTOM_TAB); register("siren", () -> SIREN, NSE_CUSTOM_TAB); Registry.register(Registries.SOUND_EVENT, new Identifier("new_soviet", "siren_sound"), SIREN_SOUND); + Registry.register(Registries.SOUND_EVENT, new Identifier("new_soviet", "light_bulb_broken_sound"), LIGHT_BULB_BROKEN_SOUND); } } \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/blockstates/light_bulb.json b/src/main/resources/assets/new_soviet/blockstates/light_bulb.json new file mode 100644 index 0000000..e04cfea --- /dev/null +++ b/src/main/resources/assets/new_soviet/blockstates/light_bulb.json @@ -0,0 +1,16 @@ +{ + "variants": { + "lit=true,cracked=true": { + "model": "new_soviet:block/light_bulb_broken" + }, + "lit=true,cracked=false": { + "model": "new_soviet:block/light_bulb_on" + }, + "lit=false,cracked=false": { + "model": "new_soviet:block/light_bulb_off" + }, + "lit=false,cracked=true": { + "model": "new_soviet:block/light_bulb_broken" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/lang/en_us.json b/src/main/resources/assets/new_soviet/lang/en_us.json index 7118e1c..69ffd03 100644 --- a/src/main/resources/assets/new_soviet/lang/en_us.json +++ b/src/main/resources/assets/new_soviet/lang/en_us.json @@ -148,5 +148,7 @@ "block.new_soviet.white_concrete_with_bars": "White Concrete With Bars", "block.new_soviet.green_concrete_with_bars": "Green Concrete With Bars", "block.new_soviet.blue_concrete_with_bars": "Blue Concrete With Bars", - "block.new_soviet.red_concrete_with_bars": "Red Concrete With Bars" + "block.new_soviet.red_concrete_with_bars": "Red Concrete With Bars", + "subtitles.new_soviet.light_bulb_broken": "Light bulb breaks", + "block.new_soviet.light_bulb": "Light Bulb" } \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/models/block/light_bulb_broken.json b/src/main/resources/assets/new_soviet/models/block/light_bulb_broken.json new file mode 100644 index 0000000..c8094ae --- /dev/null +++ b/src/main/resources/assets/new_soviet/models/block/light_bulb_broken.json @@ -0,0 +1,84 @@ +{ + "credit": "Made by Feulim (karoter2)", + "textures": { + "0": "new_soviet:block/custom/furniture/light_bulb_off", + "particle": "new_soviet:block/custom/furniture/light_bulb_off" + }, + "elements": [ + { + "from": [7, 6, 7], + "to": [9, 8, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7, 0, 5, 2], "texture": "#0"}, + "east": {"uv": [5, 0, 7, 2], "texture": "#0"}, + "south": {"uv": [7, 0, 5, 2], "texture": "#0"}, + "west": {"uv": [5, 0, 7, 2], "texture": "#0"}, + "up": {"uv": [7, 4, 5, 2], "texture": "#0"}, + "down": {"uv": [16, 14, 14, 16], "texture": "#0"} + } + }, + { + "from": [8, 5, 7.5], + "to": [8, 16, 8.5], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 11], "texture": "#0"}, + "east": {"uv": [0, 0, 1, 11], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 11], "texture": "#0"}, + "west": {"uv": [0, 0, 1, 11], "texture": "#0"}, + "up": {"uv": [0, 0, 0, 1], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 1], "texture": "#0"} + } + }, + { + "from": [8, 5, 7.5], + "to": [8, 16, 8.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 11], "texture": "#0"}, + "east": {"uv": [1, 0, 2, 11], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 11], "texture": "#0"}, + "west": {"uv": [1, 0, 2, 11], "texture": "#0"}, + "up": {"uv": [0, 1, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 1], "texture": "#0"} + } + }, + { + "from": [7, 15.5, 7], + "to": [9, 16.5, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [9, 0, 7, 1], "texture": "#0"}, + "east": {"uv": [7, 0, 9, 1], "texture": "#0"}, + "south": {"uv": [9, 0, 7, 1], "texture": "#0"}, + "west": {"uv": [7, 0, 9, 1], "texture": "#0"}, + "up": {"uv": [16, 16, 14, 14], "texture": "#0"}, + "down": {"uv": [5, 9, 3, 11], "texture": "#0"} + } + }, + { + "name": "cube_outline", + "from": [9, 8, 9], + "to": [7, 6, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7, 0, 5, 2], "rotation": 180, "texture": "#0"}, + "east": {"uv": [5, 0, 7, 2], "rotation": 180, "texture": "#0"}, + "south": {"uv": [7, 0, 5, 2], "rotation": 180, "texture": "#0"}, + "west": {"uv": [5, 0, 7, 2], "rotation": 180, "texture": "#0"}, + "up": {"uv": [16, 14, 14, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [7, 4, 5, 2], "rotation": 180, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [16, 8, 16], + "color": 0, + "nbt": "{}", + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/models/block/light_bulb_off.json b/src/main/resources/assets/new_soviet/models/block/light_bulb_off.json new file mode 100644 index 0000000..bfed5cd --- /dev/null +++ b/src/main/resources/assets/new_soviet/models/block/light_bulb_off.json @@ -0,0 +1,7 @@ +{ + "parent": "new_soviet:block/light_bulb_on", + "textures": { + "0": "new_soviet:block/custom/furniture/light_bulb_off", + "particle": "new_soviet:block/custom/furniture/light_bulb_off" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/models/block/light_bulb_on.json b/src/main/resources/assets/new_soviet/models/block/light_bulb_on.json new file mode 100644 index 0000000..ecf0fe1 --- /dev/null +++ b/src/main/resources/assets/new_soviet/models/block/light_bulb_on.json @@ -0,0 +1,83 @@ +{ + "credit": "Made by Feulim (karoter2)", + "textures": { + "0": "new_soviet:block/custom/furniture/light_bulb_on", + "particle": "new_soviet:block/custom/furniture/light_bulb_on" + }, + "elements": [ + { + "from": [6.5, 3, 6.5], + "to": [9.5, 6, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [2, 3, 5, 0], "texture": "#0"}, + "east": {"uv": [2, 3, 5, 0], "texture": "#0"}, + "south": {"uv": [2, 3, 5, 0], "texture": "#0"}, + "west": {"uv": [2, 3, 5, 0], "texture": "#0"}, + "up": {"uv": [5, 6, 2, 3], "texture": "#0"}, + "down": {"uv": [5, 6, 2, 9], "texture": "#0"} + } + }, + { + "from": [7, 6, 7], + "to": [9, 8, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7, 0, 5, 2], "texture": "#0"}, + "east": {"uv": [5, 0, 7, 2], "texture": "#0"}, + "south": {"uv": [7, 0, 5, 2], "texture": "#0"}, + "west": {"uv": [5, 0, 7, 2], "texture": "#0"}, + "up": {"uv": [7, 4, 5, 2], "texture": "#0"}, + "down": {"uv": [16, 14, 14, 16], "texture": "#0"} + } + }, + { + "from": [8, 5, 7.5], + "to": [8, 16, 8.5], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 11], "texture": "#0"}, + "east": {"uv": [0, 0, 1, 11], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 11], "texture": "#0"}, + "west": {"uv": [0, 0, 1, 11], "texture": "#0"}, + "up": {"uv": [0, 0, 0, 1], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 1], "texture": "#0"} + } + }, + { + "from": [8, 5, 7.5], + "to": [8, 16, 8.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 11], "texture": "#0"}, + "east": {"uv": [1, 0, 2, 11], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 11], "texture": "#0"}, + "west": {"uv": [1, 0, 2, 11], "texture": "#0"}, + "up": {"uv": [0, 1, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 1], "texture": "#0"} + } + }, + { + "from": [7, 15.5, 7], + "to": [9, 16.5, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [9, 0, 7, 1], "texture": "#0"}, + "east": {"uv": [7, 0, 9, 1], "texture": "#0"}, + "south": {"uv": [9, 0, 7, 1], "texture": "#0"}, + "west": {"uv": [7, 0, 9, 1], "texture": "#0"}, + "up": {"uv": [16, 16, 14, 14], "texture": "#0"}, + "down": {"uv": [5, 9, 3, 11], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [16, 8, 16], + "color": 0, + "nbt": "{}", + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/models/item/light_bulb.json b/src/main/resources/assets/new_soviet/models/item/light_bulb.json new file mode 100644 index 0000000..1eefa89 --- /dev/null +++ b/src/main/resources/assets/new_soviet/models/item/light_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "new_soviet:block/light_bulb_off" +} \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/sounds.json b/src/main/resources/assets/new_soviet/sounds.json index b1c44b9..acf1342 100644 --- a/src/main/resources/assets/new_soviet/sounds.json +++ b/src/main/resources/assets/new_soviet/sounds.json @@ -10,6 +10,12 @@ "sounds": [ "new_soviet:siren" ] + }, + "light_bulb_broken_sound": { + "subtitle": "subtitles.new_soviet.light_bulb_broken", + "sounds": [ + "new_soviet:light_bulb_broken" + ] } } diff --git a/src/main/resources/assets/new_soviet/sounds/LICENSE b/src/main/resources/assets/new_soviet/sounds/LICENSE new file mode 100644 index 0000000..b48b276 --- /dev/null +++ b/src/main/resources/assets/new_soviet/sounds/LICENSE @@ -0,0 +1 @@ +File light_bulb_broken.ogg is converted .mp3 file made by Mike Koenig, which is licensed under CC Attribution 3.0 (https://creativecommons.org/licenses/by/3.0/). Original file is available at https://soundbible.com/105-Light-Bulb-Breaking.html \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/sounds/light_bulb_broken.ogg b/src/main/resources/assets/new_soviet/sounds/light_bulb_broken.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4ebd65572a0446d87ede131ae6a7f9a7f23e887e GIT binary patch literal 17313 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/new_soviet/textures/block/custom/furniture/light_bulb_off.png b/src/main/resources/assets/new_soviet/textures/block/custom/furniture/light_bulb_off.png new file mode 100644 index 0000000000000000000000000000000000000000..e29dfb60cf42bb17685ddd3e50a9a40246fc7583 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|&Uv~xhFJ6_ zU%49e^ZbDW2R7th_hXaHRBcoDe{Z;C`BS5se}85=h6YZ0`2Bo5Pj`4;LdpTgh=iW) z`S%XIJU`#wxaRk_-o$&0LM==W@g_We(2`N}o6qm_r%ytc+6^9D?|(1RG~d2n?Uuj} z?v~b8iF^BMk1Oct94YwmA+gD?ol#AKd70!h(IiH0asDGKvtDI=h)`fX5UZfPw#8{O zkDUF^-~T~C9>|z4Qv0DqL3{C;86x7}{sUd35_zWO%+J4{#hJCOr9Ihtn6wxes-%5_ UI$!4h0Q!u<)78&qol`;+0AlratN;K2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/new_soviet/textures/block/custom/furniture/light_bulb_on.png b/src/main/resources/assets/new_soviet/textures/block/custom/furniture/light_bulb_on.png new file mode 100644 index 0000000000000000000000000000000000000000..9cf5b6d2dd0366be43dd3044b8bedf2f3438f794 GIT binary patch literal 306 zcmV-20nPr2P)Px#>`6pHR5*?8lCes|P!xv0gtpqyOqr}?u+&8m@*ENzJ39D4&Q1tR@5&G`2YX_07*qoM6N<$ Eg5F++Pyhe` literal 0 HcmV?d00001