From 82d4a8772d67b67aec4c73a2e67a3df54ae69145 Mon Sep 17 00:00:00 2001 From: reidbhuntley Date: Sun, 27 Jun 2021 21:38:42 -0400 Subject: [PATCH] Curses III, extra spooky edition - Added proper rendering, tooltips, sounds, and particle effects to the bells - Added a crafting recipe for the Peculiar Bell - Added a conversion method for obtaining Cursed Bells - Fixed the soul indicators showing up in non-full blocks --- src/generated/resources/.cache/cache | 36 +- .../create/blockstates/peculiar_bell.json | 124 +++++ .../resources/assets/create/lang/en_us.json | 15 +- .../assets/create/lang/unfinished/de_de.json | 17 +- .../assets/create/lang/unfinished/es_es.json | 17 +- .../assets/create/lang/unfinished/es_mx.json | 17 +- .../assets/create/lang/unfinished/fr_fr.json | 17 +- .../assets/create/lang/unfinished/it_it.json | 17 +- .../assets/create/lang/unfinished/ja_jp.json | 17 +- .../assets/create/lang/unfinished/ko_kr.json | 17 +- .../assets/create/lang/unfinished/nl_nl.json | 17 +- .../assets/create/lang/unfinished/pl_pl.json | 17 +- .../assets/create/lang/unfinished/pt_br.json | 17 +- .../assets/create/lang/unfinished/ru_ru.json | 17 +- .../assets/create/lang/unfinished/zh_cn.json | 17 +- .../assets/create/lang/unfinished/zh_tw.json | 17 +- .../create/models/item/peculiar_bell.json | 3 + .../resources/assets/create/sounds.json | 21 + .../data/create/advancements/aesthetics.json | 4 +- .../crafting/curiosities/peculiar_bell.json | 32 ++ .../crafting/curiosities/peculiar_bell.json | 22 + .../com/simibubi/create/AllBlockPartials.java | 3 +- .../java/com/simibubi/create/AllBlocks.java | 11 +- .../com/simibubi/create/AllSoundEvents.java | 13 + .../com/simibubi/create/AllTileEntities.java | 5 +- .../MysteriousItemConversionCategory.java | 3 +- .../actors/BellMovementBehaviour.java | 36 +- .../curiosities/bell/AbstractBellBlock.java | 58 ++- .../bell/AbstractBellTileEntity.java | 10 +- ...actBellRenderer.java => BellRenderer.java} | 43 +- .../curiosities/bell/CursedBellBlock.java | 15 +- .../bell/CursedBellMovementBehaviour.java | 3 +- .../bell/CursedBellTileEntity.java | 85 +++- .../curiosities/bell/PeculiarBellBlock.java | 67 ++- .../bell/PeculiarBellTileEntity.java | 11 +- .../curiosities/bell/SoulPulseEffect.java | 41 +- .../bell/SoulPulseEffectHandler.java | 31 +- .../data/recipe/StandardRecipeGen.java | 16 +- .../assets/create/lang/default/tooltips.json | 14 +- .../create/models/block/cursed_bell/bell.json | 448 ++++++++++++++++-- .../block/cursed_bell/block_ceiling.json | 5 +- .../block/cursed_bell/block_double_wall.json | 34 +- .../models/block/cursed_bell/block_floor.json | 5 +- .../block/cursed_bell/block_single_wall.json | 30 +- .../create/models/block/cursed_bell/item.json | 5 +- .../models/block/peculiar_bell/bell.json | 92 ++++ .../block/peculiar_bell/block_ceiling.json | 37 ++ .../peculiar_bell/block_double_wall.json | 32 ++ .../block/peculiar_bell/block_floor.json | 35 ++ .../peculiar_bell/block_single_wall.json | 30 ++ .../models/block/peculiar_bell/item.json | 93 ++++ .../create/sounds/cursed_bell_convert.ogg | Bin 0 -> 56720 bytes .../assets/create/sounds/cursed_bell_use.ogg | Bin 0 -> 49118 bytes .../create/textures/block/bell_anim.png | Bin 0 -> 6600 bytes .../textures/block/bell_anim.png.mcmeta | 6 + 55 files changed, 1519 insertions(+), 276 deletions(-) create mode 100644 src/generated/resources/assets/create/blockstates/peculiar_bell.json create mode 100644 src/generated/resources/assets/create/models/item/peculiar_bell.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/crafting/curiosities/peculiar_bell.json create mode 100644 src/generated/resources/data/create/recipes/crafting/curiosities/peculiar_bell.json rename src/main/java/com/simibubi/create/content/curiosities/bell/{AbstractBellRenderer.java => BellRenderer.java} (56%) create mode 100644 src/main/resources/assets/create/models/block/peculiar_bell/bell.json create mode 100644 src/main/resources/assets/create/models/block/peculiar_bell/block_ceiling.json create mode 100644 src/main/resources/assets/create/models/block/peculiar_bell/block_double_wall.json create mode 100644 src/main/resources/assets/create/models/block/peculiar_bell/block_floor.json create mode 100644 src/main/resources/assets/create/models/block/peculiar_bell/block_single_wall.json create mode 100644 src/main/resources/assets/create/models/block/peculiar_bell/item.json create mode 100644 src/main/resources/assets/create/sounds/cursed_bell_convert.ogg create mode 100644 src/main/resources/assets/create/sounds/cursed_bell_use.ogg create mode 100644 src/main/resources/assets/create/textures/block/bell_anim.png create mode 100644 src/main/resources/assets/create/textures/block/bell_anim.png.mcmeta diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index a712665a2..7aaffed16 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -304,6 +304,7 @@ c17d334e938dcb742550ba8307ca8266a1fc9b49 assets/create/blockstates/paved_weather cb23aef25f3106b06c8fa8f152c638bb0d2185d8 assets/create/blockstates/paved_weathered_limestone_slab.json d62b0992cec1de45dad1f2c273132225f4ef33a0 assets/create/blockstates/paved_weathered_limestone_stairs.json e29e245d06c46dac94fcd0e01a9bf7fa8e02fb87 assets/create/blockstates/paved_weathered_limestone_wall.json +7734d96271a199579e3ebb0bebf8bcd1cbec0992 assets/create/blockstates/peculiar_bell.json 30971f2f76fe56f144178c33ad6bde5fc9fb61c3 assets/create/blockstates/pink_sail.json 919a79e4a4a5fab0aac3ef48e1c786017d6aa001 assets/create/blockstates/pink_seat.json 471a3bb474a0ae0453143888d561256cce894e3f assets/create/blockstates/pink_valve_handle.json @@ -409,20 +410,20 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json e6152504e06696dd5e67fc7711c8a35a0e89adc1 assets/create/lang/en_ud.json -00337b04d0232065f83af04be1602a4bbca41a9a assets/create/lang/en_us.json -72c1bdf241a2a1714012629313a7dca832f16543 assets/create/lang/unfinished/de_de.json -b5dba799882a10acabba2da1364f13c6315a2faf assets/create/lang/unfinished/es_es.json -e120bf71ae293dc52d3c3bce580f62f26342ff70 assets/create/lang/unfinished/es_mx.json -1ecb0ec82bb47c06d0aa70a91e8e41ccf6732ac4 assets/create/lang/unfinished/fr_fr.json -e351b0007f1a81b52dc665ee7e602c70674cbb1a assets/create/lang/unfinished/it_it.json -23356bb29f55045b67593be4b33373a9fdb5321b assets/create/lang/unfinished/ja_jp.json -237d03e301ec70dfec0e9c1350090f33d362b598 assets/create/lang/unfinished/ko_kr.json -8cd5ab5eadc7ef36415af7cc006afae47d0b84eb assets/create/lang/unfinished/nl_nl.json -eaa616c53638b79981efb639e5c1774bb71a3b64 assets/create/lang/unfinished/pl_pl.json -30bbe746564f86680c352df4bfca0a2b35e26e22 assets/create/lang/unfinished/pt_br.json -01ed0cf0d98ea2c51279419a566218a1d81ae491 assets/create/lang/unfinished/ru_ru.json -5dfb89943acd1b569516e95ce35acb0b686aaa41 assets/create/lang/unfinished/zh_cn.json -91b105a5e2a184e27e48be907a4f80ef3123e16f assets/create/lang/unfinished/zh_tw.json +4d7ec7006116a592c33b7b7af0993928c85d3943 assets/create/lang/en_us.json +584ba74d18b1bdd51f943c2ef90ceac25df60b4b assets/create/lang/unfinished/de_de.json +18a8e656082e0f34f313d551e32ed57a8f42f5ba assets/create/lang/unfinished/es_es.json +88da824ad125a1a6914b1e945d17485f97ea1543 assets/create/lang/unfinished/es_mx.json +790f6fafb21a2290adbe6da075c9894b4cd9ce9e assets/create/lang/unfinished/fr_fr.json +b3801b0e37c3a93014d0b209b3c20d0eb4982550 assets/create/lang/unfinished/it_it.json +190bf21a8e82f264db0e1aa32f0516e43725e725 assets/create/lang/unfinished/ja_jp.json +bb68c5668957aeb7feff85c64adb7ee1beecd076 assets/create/lang/unfinished/ko_kr.json +4857d98dd044d09780c1dfad653ba62cb1db7c1e assets/create/lang/unfinished/nl_nl.json +e96765630f6aa460142ac9d59c0ded91e2bb3264 assets/create/lang/unfinished/pl_pl.json +a758699740d59f90dab2858f767d8c170cb1b2c8 assets/create/lang/unfinished/pt_br.json +a13cf78eaae1cd494dd350b46753e833e5a85f50 assets/create/lang/unfinished/ru_ru.json +77bdd9d870abb3933eec633c454ff2b5b920802d assets/create/lang/unfinished/zh_cn.json +ea1f932652bd254a592af703801dd3501407277c assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1537,6 +1538,7 @@ d60c4fb6e0e68d8f6c137a0c601145c342236c18 assets/create/models/item/paved_limesto 5ec22c676e301a7004ff7d127d20b46f49063c64 assets/create/models/item/paved_weathered_limestone_slab.json d81f85aea5e683539a0f3c805c154b76a9d88a9d assets/create/models/item/paved_weathered_limestone_stairs.json 910eaf2f571bae883b888d13f305bd848d278577 assets/create/models/item/paved_weathered_limestone_wall.json +2c0c9e7b131d9eb87b595abcbd68d2c55c443e58 assets/create/models/item/peculiar_bell.json 9664f171c7856661776c5c4ef0b6880a77db648e assets/create/models/item/pink_seat.json 7d12cc24b86fcb3f0ca6fee650d1dee683859c0d assets/create/models/item/pink_valve_handle.json 04ce23dc141bedccc75b4512263da8b498f13205 assets/create/models/item/piston_extension_pole.json @@ -1656,8 +1658,8 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear 866fbb0ce2878a73e0440d1caf6534c8bd7c384f assets/create/models/item/zinc_ingot.json a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json -f4c38d16e998aa2dbad4a827035fd5754c060104 assets/create/sounds.json -5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json +60e8433e4fecca8ff5002978844169eefc929394 assets/create/sounds.json +0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json 187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json 83c046bd200623933545c9e4326f782fb02c87fa data/create/advancements/arm_blaze_burner.json @@ -1789,6 +1791,7 @@ dd487f98c411f1ff22cb7fc208b8cc24b27deb2f data/create/advancements/recipes/create 911159091a9674c36e8cd49f56f63e5442988e84 data/create/advancements/recipes/create.base/crafting/appliances/linked_controller.json 51cdcf168087f47e4458eed7543d227da1ee5ca0 data/create/advancements/recipes/create.base/crafting/appliances/tree_fertilizer.json d531f87f425d199aee4777a588c1cd6cab6f5173 data/create/advancements/recipes/create.base/crafting/curiosities/minecart_coupling.json +a8c72e7e02fd0843d33fa4c5d43de81f29bc3aa4 data/create/advancements/recipes/create.base/crafting/curiosities/peculiar_bell.json 2eef3201017af03f6a2f0f015645e3ff5e25d9c1 data/create/advancements/recipes/create.base/crafting/curiosities/wand_of_symmetry.json 80155fa8e28e7de87adad3dc2cd79564496d7ef7 data/create/advancements/recipes/create.base/crafting/kinetics/adjustable_chain_gearshift.json 92416ced6ede6965fd728e1c7336bb05a3e41ea2 data/create/advancements/recipes/create.base/crafting/kinetics/analog_lever.json @@ -2874,6 +2877,7 @@ c077375d16b4505e52548613fbc9356993556e6b data/create/recipes/crafting/appliances 7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json b159ba84428eee6ef6e23df1766f2a18f2c8a63e data/create/recipes/crafting/appliances/tree_fertilizer.json 660e92da2b1b6698b1c0df74bd74a56a25fb3eca data/create/recipes/crafting/curiosities/minecart_coupling.json +23ad6016273c0a1aefc8950187caf321f55ce738 data/create/recipes/crafting/curiosities/peculiar_bell.json fcbc04d0a7eaf820a74bc7e4736a4a581e0a9dff data/create/recipes/crafting/curiosities/wand_of_symmetry.json cc56d21a25286a9024e506dde9fa161230eaf46d data/create/recipes/crafting/kinetics/adjustable_chain_gearshift.json 88de51b451469698665b7319e5b9cfb9a87ae3e0 data/create/recipes/crafting/kinetics/analog_lever.json diff --git a/src/generated/resources/assets/create/blockstates/peculiar_bell.json b/src/generated/resources/assets/create/blockstates/peculiar_bell.json new file mode 100644 index 000000000..1c4ad76a6 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/peculiar_bell.json @@ -0,0 +1,124 @@ +{ + "variants": { + "attachment=floor,facing=north,powered=false": { + "model": "create:block/peculiar_bell/block_floor" + }, + "attachment=ceiling,facing=north,powered=false": { + "model": "create:block/peculiar_bell/block_ceiling" + }, + "attachment=single_wall,facing=north,powered=false": { + "model": "create:block/peculiar_bell/block_single_wall" + }, + "attachment=double_wall,facing=north,powered=false": { + "model": "create:block/peculiar_bell/block_double_wall" + }, + "attachment=floor,facing=south,powered=false": { + "model": "create:block/peculiar_bell/block_floor", + "y": 180 + }, + "attachment=ceiling,facing=south,powered=false": { + "model": "create:block/peculiar_bell/block_ceiling", + "y": 180 + }, + "attachment=single_wall,facing=south,powered=false": { + "model": "create:block/peculiar_bell/block_single_wall", + "y": 180 + }, + "attachment=double_wall,facing=south,powered=false": { + "model": "create:block/peculiar_bell/block_double_wall", + "y": 180 + }, + "attachment=floor,facing=west,powered=false": { + "model": "create:block/peculiar_bell/block_floor", + "y": 270 + }, + "attachment=ceiling,facing=west,powered=false": { + "model": "create:block/peculiar_bell/block_ceiling", + "y": 270 + }, + "attachment=single_wall,facing=west,powered=false": { + "model": "create:block/peculiar_bell/block_single_wall", + "y": 270 + }, + "attachment=double_wall,facing=west,powered=false": { + "model": "create:block/peculiar_bell/block_double_wall", + "y": 270 + }, + "attachment=floor,facing=east,powered=false": { + "model": "create:block/peculiar_bell/block_floor", + "y": 90 + }, + "attachment=ceiling,facing=east,powered=false": { + "model": "create:block/peculiar_bell/block_ceiling", + "y": 90 + }, + "attachment=single_wall,facing=east,powered=false": { + "model": "create:block/peculiar_bell/block_single_wall", + "y": 90 + }, + "attachment=double_wall,facing=east,powered=false": { + "model": "create:block/peculiar_bell/block_double_wall", + "y": 90 + }, + "attachment=floor,facing=north,powered=true": { + "model": "create:block/peculiar_bell/block_floor" + }, + "attachment=ceiling,facing=north,powered=true": { + "model": "create:block/peculiar_bell/block_ceiling" + }, + "attachment=single_wall,facing=north,powered=true": { + "model": "create:block/peculiar_bell/block_single_wall" + }, + "attachment=double_wall,facing=north,powered=true": { + "model": "create:block/peculiar_bell/block_double_wall" + }, + "attachment=floor,facing=south,powered=true": { + "model": "create:block/peculiar_bell/block_floor", + "y": 180 + }, + "attachment=ceiling,facing=south,powered=true": { + "model": "create:block/peculiar_bell/block_ceiling", + "y": 180 + }, + "attachment=single_wall,facing=south,powered=true": { + "model": "create:block/peculiar_bell/block_single_wall", + "y": 180 + }, + "attachment=double_wall,facing=south,powered=true": { + "model": "create:block/peculiar_bell/block_double_wall", + "y": 180 + }, + "attachment=floor,facing=west,powered=true": { + "model": "create:block/peculiar_bell/block_floor", + "y": 270 + }, + "attachment=ceiling,facing=west,powered=true": { + "model": "create:block/peculiar_bell/block_ceiling", + "y": 270 + }, + "attachment=single_wall,facing=west,powered=true": { + "model": "create:block/peculiar_bell/block_single_wall", + "y": 270 + }, + "attachment=double_wall,facing=west,powered=true": { + "model": "create:block/peculiar_bell/block_double_wall", + "y": 270 + }, + "attachment=floor,facing=east,powered=true": { + "model": "create:block/peculiar_bell/block_floor", + "y": 90 + }, + "attachment=ceiling,facing=east,powered=true": { + "model": "create:block/peculiar_bell/block_ceiling", + "y": 90 + }, + "attachment=single_wall,facing=east,powered=true": { + "model": "create:block/peculiar_bell/block_single_wall", + "y": 90 + }, + "attachment=double_wall,facing=east,powered=true": { + "model": "create:block/peculiar_bell/block_double_wall", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 7b33d6913..4360a2b90 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1169,6 +1169,7 @@ "create.subtitle.saw_idle": "Mechanical Saw turns", "create.subtitle.contraption_disassemble": "Contraption stops", + "create.subtitle.peculiar_bell_use": "Peculiar Bell tolls", "create.subtitle.mixing": "Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "Mechanical Press bonks", "create.subtitle.fwoomp": "Potato Launcher fwoomps", @@ -1193,6 +1194,8 @@ "create.subtitle.controller_click": "Controller clicks", "create.subtitle.schematicannon_launch_block": "Schematicannon fires", "create.subtitle.copper_armor_equip": "Diving equipment clinks", + "create.subtitle.cursed_bell_use": "Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "Mechanical Press clangs", "create.subtitle.contraption_assemble": "Contraption moves", "create.subtitle.crafter_click": "Crafter clicks", @@ -1389,7 +1392,7 @@ "item.create.linked_controller.tooltip.behaviour3": "Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "When Worn", "item.create.diving_helmet.tooltip.behaviour1": "Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1403,7 +1406,7 @@ "item.create.diving_boots.tooltip": "DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "When Worn", - "item.create.diving_boots.tooltip.behaviour1": "Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "_Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1417,6 +1420,14 @@ "item.create.minecart_coupling.tooltip.condition1": "When Used on Minecart", "item.create.minecart_coupling.tooltip.behaviour1": "_Couples_ two Minecarts together, attempting to keep them at a _constant distance_ while moving.", + "block.create.peculiar_bell.tooltip": "PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index be2a1c5e6..7bec5cd38 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1064", + "_": "Missing Localizations: 1073", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "Bauplankanone schießt", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "Mechanische Presse wird aktiviert", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "UNLOCALIZED: When Used on Minecart", "item.create.minecart_coupling.tooltip.behaviour1": "UNLOCALIZED: _Couples_ two Minecarts together, attempting to keep them at a _constant distance_ while moving.", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 7c6566c57..8983ea9da 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 825", + "_": "Missing Localizations: 834", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "Disparos de Schematicannon", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "La Prensa Mecánica se activa", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en Vagonetas", "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos Vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_mx.json b/src/generated/resources/assets/create/lang/unfinished/es_mx.json index 141c95beb..705f47f8d 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_mx.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_mx.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1431", + "_": "Missing Localizations: 1440", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "UNLOCALIZED: Schematicannon fires", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "UNLOCALIZED: When Used on Minecart", "item.create.minecart_coupling.tooltip.behaviour1": "UNLOCALIZED: _Couples_ two Minecarts together, attempting to keep them at a _constant distance_ while moving.", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 4cc2b8505..aeada7ee7 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1316", + "_": "Missing Localizations: 1325", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "Tir de schémacanon", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "Activation de la presse mechanique", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "UNLOCALIZED: When Used on Minecart", "item.create.minecart_coupling.tooltip.behaviour1": "UNLOCALIZED: _Couples_ two Minecarts together, attempting to keep them at a _constant distance_ while moving.", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index c6416dd3b..0664d2120 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 842", + "_": "Missing Localizations: 851", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "Tiri del cannoneschematico", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "Pressa meccanica attiva", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "Quando usato su un carrello da miniera", "item.create.minecart_coupling.tooltip.behaviour1": "_Concatena_ due carrelli insieme, provando a tenerli uniti a una _distanza costante_ mentre si muovono.", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 9e642886d..80f6217ea 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 208", + "_": "Missing Localizations: 217", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "からくりが止まる", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "混ぜる音", "create.subtitle.mechanical_press_activation_belt": "メカニカルプレスがボンと鳴る", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "概略図砲が発射する", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "メカニカルプレスがガーンと鳴る", "create.subtitle.contraption_assemble": "からくりが動く", "create.subtitle.crafter_click": "メカニカルクラフターのカチカチ音", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "トロッコに使ったとき", "item.create.minecart_coupling.tooltip.behaviour1": "_2台_のトロッコを連結します。それらは移動中に_一定_の_距離_を保とうします。", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 69aa8e6bb..5e3d46541 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 895", + "_": "Missing Localizations: 904", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "청사진 대포가 발포함", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "압착기가 가동됨", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "광산 수레에 사용할 때", "item.create.minecart_coupling.tooltip.behaviour1": "_두 수레를 묶어_ 이동할 때 고정된 _거리를 유지하게_ 합니다.", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 38d1be513..18dc46c7f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1699", + "_": "Missing Localizations: 1708", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "UNLOCALIZED: Schematicannon fires", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "UNLOCALIZED: When Used on Minecart", "item.create.minecart_coupling.tooltip.behaviour1": "UNLOCALIZED: _Couples_ two Minecarts together, attempting to keep them at a _constant distance_ while moving.", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index cd502ef1f..8f52c7ed1 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 184", + "_": "Missing Localizations: 193", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "Maszyna staje", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "Dźwięki mieszania", "create.subtitle.mechanical_press_activation_belt": "Mechaniczna prasa stuka", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "Schematoarmata strzela", "create.subtitle.copper_armor_equip": "Sprzęt do nurkowania pobrzękuje", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "Mechaniczna prasa się uruchamia", "create.subtitle.contraption_assemble": "Maszyna przesuwa się", "create.subtitle.crafter_click": "Mechaniczny stół rzemieślniczy stuka", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "Kiedy użyto na wagoniku", "item.create.minecart_coupling.tooltip.behaviour1": "_Łączy_ dwa wagoniki, próbując utrzymać je w stałej odległości od siebie.", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index f4d947e1c..1cc98da4e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1740", + "_": "Missing Localizations: 1749", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "UNLOCALIZED: Schematicannon fires", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "UNLOCALIZED: When Used on Minecart", "item.create.minecart_coupling.tooltip.behaviour1": "UNLOCALIZED: _Couples_ two Minecarts together, attempting to keep them at a _constant distance_ while moving.", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 8129776c1..cafaf0ce0 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 741", + "_": "Missing Localizations: 750", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "Выстрелы схематичной пушки", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "Механический пресс активирован", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "При использовании на вагонетке", "item.create.minecart_coupling.tooltip.behaviour1": "_Соединяет_ две вагонетки вместе, пытаясь держать их на _определенной дистанции_ при движении.", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 5830abeb2..d926ba980 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 225", + "_": "Missing Localizations: 234", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "蓝图加农炮:发射", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "辊压机:工作中", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "作用与矿车时", "item.create.minecart_coupling.tooltip.behaviour1": "将两个矿车耦合在一起,在移动时将它们保持_恒定的距离_。", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 1335de63d..5b7cb3978 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 220", + "_": "Missing Localizations: 229", "_": "->------------------------] Game Elements [------------------------<-", @@ -1170,6 +1170,7 @@ "create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns", "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", + "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", "create.subtitle.mixing": "UNLOCALIZED: Mixing Noises", "create.subtitle.mechanical_press_activation_belt": "液壓機工作", "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", @@ -1194,6 +1195,8 @@ "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.schematicannon_launch_block": "藍圖大炮發射", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", + "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", + "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.mechanical_press_activation": "液壓機工作", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", @@ -1390,7 +1393,7 @@ "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -1404,7 +1407,7 @@ "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -1418,6 +1421,14 @@ "item.create.minecart_coupling.tooltip.condition1": "作用與礦車時", "item.create.minecart_coupling.tooltip.behaviour1": "將兩個礦車耦合在一起,在移動時將它們保持_恒定的距離_。", + "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "UNLOCALIZED: CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "UNLOCALIZED: A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby dark spots on which Hostile Mobs could spawn.", + "_": "->------------------------] Ponder Content [------------------------<-", diff --git a/src/generated/resources/assets/create/models/item/peculiar_bell.json b/src/generated/resources/assets/create/models/item/peculiar_bell.json new file mode 100644 index 000000000..686bce88e --- /dev/null +++ b/src/generated/resources/assets/create/models/item/peculiar_bell.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/peculiar_bell/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/sounds.json b/src/generated/resources/assets/create/sounds.json index 9734980b3..cbfc13e27 100644 --- a/src/generated/resources/assets/create/sounds.json +++ b/src/generated/resources/assets/create/sounds.json @@ -110,6 +110,18 @@ } ] }, + "cursed_bell_convert": { + "sounds": [ + "create:cursed_bell_convert" + ], + "subtitle": "create.subtitle.cursed_bell_convert" + }, + "cursed_bell_use": { + "sounds": [ + "create:cursed_bell_use" + ], + "subtitle": "create.subtitle.cursed_bell_use" + }, "deny": { "sounds": [ { @@ -220,6 +232,15 @@ } ] }, + "peculiar_bell_use": { + "sounds": [ + { + "name": "minecraft:block.bell.use", + "type": "event" + } + ], + "subtitle": "create.subtitle.peculiar_bell_use" + }, "potato_hit": { "sounds": [ { diff --git a/src/generated/resources/data/create/advancements/aesthetics.json b/src/generated/resources/data/create/advancements/aesthetics.json index 59a86f429..d723cbe38 100644 --- a/src/generated/resources/data/create/advancements/aesthetics.json +++ b/src/generated/resources/data/create/advancements/aesthetics.json @@ -28,8 +28,8 @@ "trigger": "create:bracket_apply", "conditions": { "accepted_entries": [ - "create:large_cogwheel", - "create:cogwheel" + "create:cogwheel", + "create:large_cogwheel" ] } }, diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/curiosities/peculiar_bell.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/curiosities/peculiar_bell.json new file mode 100644 index 000000000..e0c6e6747 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/curiosities/peculiar_bell.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/curiosities/peculiar_bell" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "forge:ingots/brass" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/curiosities/peculiar_bell" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/curiosities/peculiar_bell.json b/src/generated/resources/data/create/recipes/crafting/curiosities/peculiar_bell.json new file mode 100644 index 000000000..926890ce2 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/curiosities/peculiar_bell.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " I ", + "IGI", + "S S" + ], + "key": { + "I": { + "tag": "forge:ingots/brass" + }, + "S": { + "tag": "forge:plates/brass" + }, + "G": { + "item": "minecraft:ghast_tear" + } + }, + "result": { + "item": "create:peculiar_bell" + } +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index 5c2dcb29b..c198f1bc3 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -93,7 +93,8 @@ public class AllBlockPartials { SPOUT_TOP = get("spout/top"), SPOUT_MIDDLE = get("spout/middle"), SPOUT_BOTTOM = get("spout/bottom"), - BELL = get("cursed_bell/bell"), + PECULIAR_BELL = get("peculiar_bell/bell"), + CURSED_BELL = get("cursed_bell/bell"), SPEED_CONTROLLER_BRACKET = get("rotation_speed_controller/bracket"), diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 6b17ca7ff..6cc651e20 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -194,7 +194,6 @@ import net.minecraft.loot.conditions.ILootCondition.IBuilder; import net.minecraft.loot.conditions.SurvivesExplosion; import net.minecraft.loot.functions.CopyName; import net.minecraft.loot.functions.CopyNbt; -import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.state.properties.PistonType; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; @@ -1308,14 +1307,14 @@ public class AllBlocks { public static final BlockEntry PECULIAR_BELL = REGISTRATE.block("peculiar_bell", PeculiarBellBlock::new) .initialProperties(SharedProperties::softMetal) - .properties(Block.Properties::nonOpaque) + .properties(p -> p.nonOpaque() + .sound(SoundType.ANVIL)) .addLayer(() -> RenderType::getCutoutMipped) .tag(AllBlockTags.BRITTLE.tag) - .onRegister(addMovementBehaviour(new BellMovementBehaviour(PeculiarBellBlock::playSound))) - .blockstate((c, p) -> {}) + .onRegister(addMovementBehaviour(new BellMovementBehaviour())) + .blockstate(BlockStateGen.bell()) .item() - .model((c, p) -> {}) - .build() + .transform(customItemModel()) .register(); public static final BlockEntry CURSED_BELL = diff --git a/src/main/java/com/simibubi/create/AllSoundEvents.java b/src/main/java/com/simibubi/create/AllSoundEvents.java index 8682a553e..80822308c 100644 --- a/src/main/java/com/simibubi/create/AllSoundEvents.java +++ b/src/main/java/com/simibubi/create/AllSoundEvents.java @@ -196,6 +196,19 @@ public class AllSoundEvents { BLAZE_MUNCH = create("blaze_munch").subtitle("Blaze Burner munches") .playExisting(SoundEvents.ENTITY_GENERIC_EAT, .5f, 1f) + .category(SoundCategory.BLOCKS) + .build(), + + PECULIAR_BELL_USE = create("peculiar_bell_use").subtitle("Peculiar Bell tolls") + .playExisting(SoundEvents.BLOCK_BELL_USE) + .category(SoundCategory.BLOCKS) + .build(), + + CURSED_BELL_CONVERT = create("cursed_bell_convert").subtitle("Cursed Bell awakens") + .category(SoundCategory.BLOCKS) + .build(), + + CURSED_BELL_USE = create("cursed_bell_use").subtitle("Cursed Bell tolls") .category(SoundCategory.BLOCKS) .build(); diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index 2fd983e15..179998138 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -119,7 +119,7 @@ import com.simibubi.create.content.contraptions.relays.gearbox.GearshiftTileEnti import com.simibubi.create.content.curiosities.armor.CopperBacktankInstance; import com.simibubi.create.content.curiosities.armor.CopperBacktankRenderer; import com.simibubi.create.content.curiosities.armor.CopperBacktankTileEntity; -import com.simibubi.create.content.curiosities.bell.AbstractBellRenderer; +import com.simibubi.create.content.curiosities.bell.BellRenderer; import com.simibubi.create.content.curiosities.bell.CursedBellTileEntity; import com.simibubi.create.content.curiosities.bell.PeculiarBellTileEntity; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelInstance; @@ -670,12 +670,13 @@ public class AllTileEntities { public static final TileEntityEntry PECULIAR_BELL = Create.registrate() .tileEntity("peculiar_bell", PeculiarBellTileEntity::new) .validBlocks(AllBlocks.PECULIAR_BELL) + .renderer(() -> BellRenderer::new) .register(); public static final TileEntityEntry CURSED_BELL = Create.registrate() .tileEntity("cursed_bell", CursedBellTileEntity::new) .validBlocks(AllBlocks.CURSED_BELL) - .renderer(() -> AbstractBellRenderer::new) + .renderer(() -> BellRenderer::new) .register(); public static void register() {} diff --git a/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java index 621bc3594..16d2d67dd 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java @@ -23,9 +23,10 @@ public class MysteriousItemConversionCategory extends CreateRecipeCategory soundPlayer; - public static final BiConsumer VANILLA_SOUND = (world, pos) -> { - world.playSound(null, pos, SoundEvents.BLOCK_BELL_USE, SoundCategory.BLOCKS, - 2.0F, 1.0F); - }; - - public BellMovementBehaviour(BiConsumer soundPlayer) { - this.soundPlayer = soundPlayer; - } - - public BellMovementBehaviour() { - this(VANILLA_SOUND); - } - @Override public boolean renderAsNormalTileEntity() { return true; @@ -37,12 +23,26 @@ public class BellMovementBehaviour extends MovementBehaviour { double dotProduct = oldMotion.dotProduct(motion); if (dotProduct <= 0 && (context.relativeMotion.length() != 0) || context.firstMovement) - soundPlayer.accept(context.world, new BlockPos(context.position)); + playSound(context); } @Override public void stopMoving(MovementContext context) { if (context.position != null) - soundPlayer.accept(context.world, new BlockPos(context.position)); + playSound(context); + } + + public static void playSound(MovementContext context) { + World world = context.world; + BlockPos pos = new BlockPos(context.position); + Block block = context.state.getBlock(); + + if (block instanceof AbstractBellBlock) { + ((AbstractBellBlock) block).playSound(world, pos); + } else { + // Vanilla bell sound + world.playSound(null, pos, SoundEvents.BLOCK_BELL_USE, + SoundCategory.BLOCKS, 2f, 1f); + } } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellBlock.java b/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellBlock.java index 518a374ee..8897b5ce3 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellBlock.java @@ -6,11 +6,13 @@ import com.simibubi.create.foundation.block.ITE; import net.minecraft.block.BellBlock; import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.state.properties.BellAttachment; +import net.minecraft.stats.Stats; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.SoundEvents; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; @@ -44,27 +46,47 @@ public abstract class AbstractBellBlock exten } @Override - public boolean ring(World world, BlockPos pos, @Nullable Direction direction) { - if (direction == null) { + public boolean ring(World world, BlockState state, BlockRayTraceResult hit, @Nullable PlayerEntity player, boolean flag) { + BlockPos pos = hit.getPos(); + Direction direction = hit.getFace(); + if (direction == null) direction = world.getBlockState(pos).get(field_220133_a); + + if (!this.canRingFrom(state, direction, hit.getHitVec().y - (double)pos.getY())) + return false; + + TE te = getTileEntity(world, pos); + if (te == null || !te.ring(world, pos, direction)) + return false; + + if (!world.isRemote) { + playSound(world, pos); + if (player != null) + player.addStat(Stats.BELL_RING); } - - if (!ringInner(world, pos, direction)) - return false; - - if (world.isRemote) - return false; - - playSound(world, pos); return true; } - public static void playSound(World world, BlockPos pos) { - world.playSound(null, pos, SoundEvents.BLOCK_BELL_USE, SoundCategory.BLOCKS, 2.0F, 1.0F); + public boolean canRingFrom(BlockState state, Direction hitDir, double heightChange) { + if (hitDir.getAxis() == Direction.Axis.Y) + return false; + if (heightChange > 0.8124) + return false; + + Direction direction = state.get(field_220133_a); + BellAttachment bellattachment = state.get(field_220134_b); + switch(bellattachment) { + case FLOOR: + case CEILING: + return direction.getAxis() == hitDir.getAxis(); + case SINGLE_WALL: + case DOUBLE_WALL: + return direction.getAxis() != hitDir.getAxis(); + default: + return false; + } } - protected boolean ringInner(World world, BlockPos pos, Direction direction) { - TE te = getTileEntity(world, pos); - return te != null && te.ring(world, pos, direction); - } + public abstract void playSound(World world, BlockPos pos); + } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellTileEntity.java index 3da76a6e0..86403ece5 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellTileEntity.java @@ -1,7 +1,9 @@ package com.simibubi.create.content.curiosities.bell; -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; +import java.util.List; +import com.jozufozu.flywheel.core.PartialModel; +import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import net.minecraft.tileentity.TileEntityType; @@ -9,11 +11,9 @@ import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import java.util.List; - public abstract class AbstractBellTileEntity extends SmartTileEntity { - public static final int RING_DURATION = 50; + public static final int RING_DURATION = 74; public boolean isRinging; public int ringingTicks; @@ -47,4 +47,6 @@ public abstract class AbstractBellTileEntity extends SmartTileEntity { } } + public abstract PartialModel getBellPartial(); + } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java similarity index 56% rename from src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellRenderer.java rename to src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java index 48fe66ed2..558444652 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java @@ -2,12 +2,9 @@ package com.simibubi.create.content.curiosities.bell; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; -import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.logistics.block.redstone.AnalogLeverBlock; import com.simibubi.create.foundation.render.PartialBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; - import com.simibubi.create.foundation.utility.AngleHelper; import net.minecraft.block.BellBlock; @@ -16,42 +13,40 @@ import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.state.properties.BellAttachment; import net.minecraft.util.Direction; import net.minecraft.util.math.MathHelper; -public class AbstractBellRenderer extends SafeTileEntityRenderer { +public class BellRenderer extends SafeTileEntityRenderer { - public AbstractBellRenderer(TileEntityRendererDispatcher dispatcher) { + public BellRenderer(TileEntityRendererDispatcher dispatcher) { super(dispatcher); } @Override protected void renderSafe(TE te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay) { BlockState state = te.getBlockState(); - int lightCoords = WorldRenderer.getLightmapCoordinates(te.getWorld(), state, te.getPos()); - IVertexBuilder vb = buffer.getBuffer(RenderType.getCutout()); + Direction facing = state.get(BellBlock.field_220133_a); + BellAttachment attachment = state.get(BellBlock.field_220134_b); - SuperByteBuffer bell = PartialBufferer.get(AllBlockPartials.BELL, state); + SuperByteBuffer bell = PartialBufferer.get(te.getBellPartial(), state); - float rY = AngleHelper.horizontalAngle(state.get(BellBlock.field_220133_a)); + if (te.isRinging) + bell.rotateCentered(te.ringDirection.rotateYCCW(), getSwingAngle(te.ringingTicks + partialTicks)); + + float rY = AngleHelper.horizontalAngle(facing); + if (attachment == BellAttachment.SINGLE_WALL || attachment == BellAttachment.DOUBLE_WALL) + rY += 90; bell.rotateCentered(Direction.UP, (float) (rY / 180 * Math.PI)); - float ringingTicks = (float)te.ringingTicks + partialTicks; - if (te.isRinging) { - float swing = MathHelper.sin(ringingTicks / (float)Math.PI) / (4.0F + ringingTicks / 3.0F); -// if (te.ringDirection == Direction.NORTH) { -// rX = -swing; -// } else if (te.ringDirection == Direction.SOUTH) { -// rX = swing; -// } else if (te.ringDirection == Direction.EAST) { -// rZ = -swing; -// } else if (te.ringDirection == Direction.WEST) { -// rZ = swing; -// } - bell.rotateCentered(te.ringDirection, swing); - } - + IVertexBuilder vb = buffer.getBuffer(RenderType.getCutout()); + int lightCoords = WorldRenderer.getLightmapCoordinates(te.getWorld(), state, te.getPos()); bell.light(lightCoords).renderInto(ms, vb); } + public static float getSwingAngle(float time) { + float t = time / 1.5f; + return 1.2f * MathHelper.sin(t / (float)Math.PI) / (2.5f + t / 3.0f); + } + } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellBlock.java b/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellBlock.java index 9fbede200..82962ec5b 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellBlock.java @@ -1,12 +1,10 @@ package com.simibubi.create.content.curiosities.bell; +import com.simibubi.create.AllSoundEvents; import com.simibubi.create.AllTileEntities; -import com.simibubi.create.foundation.block.ITE; - import net.minecraft.block.BlockState; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; @@ -27,4 +25,15 @@ public class CursedBellBlock extends AbstractBellBlock { return CursedBellTileEntity.class; } + @Override + public void playSound(World world, BlockPos pos) { + AllSoundEvents.CURSED_BELL_USE.playOnServer(world, pos, 4f, 1f); + } + + @Override + public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean isMoving) { + if (oldState.getBlock() != this) + withTileEntityDo(world, pos, CursedBellTileEntity::startEffect); + } + } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellMovementBehaviour.java b/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellMovementBehaviour.java index d93662846..9e7fa722e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellMovementBehaviour.java @@ -1,5 +1,6 @@ package com.simibubi.create.content.curiosities.bell; +import com.simibubi.create.content.contraptions.components.actors.BellMovementBehaviour; import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; @@ -21,7 +22,7 @@ public class CursedBellMovementBehaviour extends MovementBehaviour { if (!context.world.isRemote && getRecharge(context) == 0) { SoulPulseEffectHandler.sendPulsePacket(context.world, pos, DISTANCE, true); setRecharge(context, CursedBellTileEntity.RECHARGE_TICKS); - CursedBellBlock.playSound(context.world, pos); + BellMovementBehaviour.playSound(context); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellTileEntity.java index cb1993634..7bfe6ba71 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/CursedBellTileEntity.java @@ -1,24 +1,29 @@ package com.simibubi.create.content.curiosities.bell; import java.util.List; +import java.util.Random; -import com.simibubi.create.CreateClient; +import com.jozufozu.flywheel.core.PartialModel; +import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.sun.org.apache.regexp.internal.RE; - import net.minecraft.block.BlockState; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.particles.ParticleTypes; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.SoundEvents; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; public class CursedBellTileEntity extends AbstractBellTileEntity { public static final int DISTANCE = 5; - public static final int RECHARGE_TICKS = 60; - public int rechargeTicks = 0; + public static final int RECHARGE_TICKS = 65; + public static final int EFFECT_TICKS = 20; + + public int effectTicks = 0; public CursedBellTileEntity(TileEntityType type) { super(type); @@ -28,33 +33,69 @@ public class CursedBellTileEntity extends AbstractBellTileEntity { public void addBehaviours(List behaviours) { } @Override - protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) { - rechargeTicks = compound.getInt("Recharge"); + public PartialModel getBellPartial() { + return AllBlockPartials.CURSED_BELL; } @Override - public void write(CompoundNBT compound, boolean clientPacket) { - compound.putInt("Recharge", rechargeTicks); + public boolean ring(World world, BlockPos pos, Direction direction) { + if (isRinging && ringingTicks < RECHARGE_TICKS) + return false; + + if (!super.ring(world, pos, direction)) + return false; + + if (!world.isRemote) + SoulPulseEffectHandler.sendPulsePacket(world, pos, DISTANCE, true); + + startEffect(); + + return true; + } + + public void startEffect() { + effectTicks = EFFECT_TICKS; + sendData(); + } + + @Override + protected void write(CompoundNBT compound, boolean clientPacket) { + super.write(compound, clientPacket); + compound.putInt("EffectTicks", effectTicks); + } + + @Override + protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) { + super.fromTag(state, compound, clientPacket); + effectTicks = compound.getInt("EffectTicks"); } @Override public void tick() { super.tick(); - if (rechargeTicks > 0) - rechargeTicks--; - } - @Override - public boolean ring(World world, BlockPos pos, Direction direction) { - if (rechargeTicks > 0) - return false; + if (effectTicks <= 0) + return; + effectTicks--; - if (!world.isRemote) { - SoulPulseEffectHandler.sendPulsePacket(world, pos, DISTANCE, true); - rechargeTicks = RECHARGE_TICKS; - sendData(); - } - return super.ring(world, pos, direction); + if (!world.isRemote) + return; + + Random rand = world.getRandom(); + if (rand.nextFloat() > 1/4f) + return; + + double x = pos.getX() + rand.nextDouble(); + double y = pos.getY() + 0.5; + double z = pos.getZ() + rand.nextDouble(); + double vx = rand.nextDouble()*0.04 - 0.02; + double vy = 0.1; + double vz = rand.nextDouble()*0.04 - 0.02; + this.world.addParticle(ParticleTypes.SOUL, x, y, z, vx, vy, vz); + + float vol = rand.nextFloat() * 0.4F + rand.nextFloat() > 0.9F ? 0.6F : 0.0F; + float pitch = 0.6F + rand.nextFloat() * 0.4F; + world.playSound(null, pos, SoundEvents.PARTICLE_SOUL_ESCAPE, SoundCategory.BLOCKS, vol, pitch); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellBlock.java b/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellBlock.java index 0c79bad5a..bcd3a0e27 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellBlock.java @@ -1,15 +1,23 @@ package com.simibubi.create.content.curiosities.bell; -import com.simibubi.create.AllTileEntities; -import com.simibubi.create.foundation.block.ITE; +import java.util.Random; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllSoundEvents; +import com.simibubi.create.AllTileEntities; + +import net.minecraft.block.BellBlock; +import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.particles.ParticleTypes; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; +import net.minecraft.world.IWorld; import net.minecraft.world.World; public class PeculiarBellBlock extends AbstractBellBlock { @@ -26,4 +34,55 @@ public class PeculiarBellBlock extends AbstractBellBlock @Override public Class getTileEntityClass() { return PeculiarBellTileEntity.class; } + @Override + public void playSound(World world, BlockPos pos) { + AllSoundEvents.PECULIAR_BELL_USE.playOnServer(world, pos, 2f, 0.94f); + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext ctx) { + World world = ctx.getWorld(); + BlockPos pos = ctx.getPos(); + return tryConvert(world, pos, super.getStateForPlacement(ctx), world.getBlockState(pos.offset(Direction.DOWN))); + } + + @Override + public BlockState updatePostPlacement(BlockState state, Direction facing, BlockState facingState, IWorld world, + BlockPos currentPos, BlockPos facingPos) { + BlockState newState = super.updatePostPlacement(state, facing, facingState, world, currentPos, facingPos); + if (facing != Direction.DOWN) + return newState; + + return tryConvert(world, currentPos, newState, facingState); + } + + protected BlockState tryConvert(IWorld world, BlockPos pos, BlockState state, BlockState underState) { + Block underBlock = underState.getBlock(); + if (!(Blocks.SOUL_FIRE.is(underBlock) || Blocks.SOUL_CAMPFIRE.is(underBlock))) + return state; + + if (world.isRemote()) { + spawnConversionParticles(world, pos); + } else if (world instanceof World) { + AllSoundEvents.CURSED_BELL_CONVERT.playOnServer((World) world, pos); + } + + return AllBlocks.CURSED_BELL.getDefaultState() + .with(BellBlock.field_220133_a, state.get(BellBlock.field_220133_a)) + .with(BellBlock.field_220134_b, state.get(BellBlock.field_220134_b)) + .with(BellBlock.POWERED, state.get(BellBlock.POWERED)); + } + + public void spawnConversionParticles(IWorld world, BlockPos blockPos) { + Random random = world.getRandom(); + int num = random.nextInt(10) + 15; + for (int i = 0; i < num; i++) { + float pitch = random.nextFloat()*120 - 90; + float yaw = random.nextFloat()*360; + Vector3d vel = Vector3d.fromPitchYaw(pitch, yaw).scale(random.nextDouble()*0.1 + 0.1); + Vector3d pos = Vector3d.ofCenter(blockPos); + world.addParticle(ParticleTypes.SOUL_FIRE_FLAME, pos.x, pos.y, pos.z, vel.x, vel.y, vel.z); + } + } + } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellTileEntity.java index 8522bbb73..065519374 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellTileEntity.java @@ -1,9 +1,9 @@ package com.simibubi.create.content.curiosities.bell; +import com.jozufozu.flywheel.core.PartialModel; +import com.simibubi.create.AllBlockPartials; + import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; public class PeculiarBellTileEntity extends AbstractBellTileEntity { @@ -11,4 +11,9 @@ public class PeculiarBellTileEntity extends AbstractBellTileEntity { super(type); } + @Override + public PartialModel getBellPartial() { + return AllBlockPartials.PECULIAR_BELL; + } + } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffect.java b/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffect.java index 59f779041..6f076222c 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffect.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffect.java @@ -1,14 +1,15 @@ package com.simibubi.create.content.curiosities.bell; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; import net.minecraft.entity.EntitySpawnPlacementRegistry; import net.minecraft.entity.EntityType; +import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.LightType; import net.minecraft.world.World; @@ -19,30 +20,25 @@ public class SoulPulseEffect { public static final int MAX_DISTANCE = 5; private static final List> LAYERS = genLayers(); - private static final int WAITING_TICKS = 120; - public static final int TICKS_PER_LAYER = 4; + private static final int WAITING_TICKS = 100; + public static final int TICKS_PER_LAYER = 6; private int ticks; public final BlockPos pos; public final int distance; - private List added; + public final List added; - public SoulPulseEffect(BlockPos pos, int distance, boolean overlaps) { + public SoulPulseEffect(BlockPos pos, int distance, boolean canOverlap) { this.ticks = TICKS_PER_LAYER * distance; this.pos = pos; this.distance = distance; - this.added = overlaps ? null : new ArrayList<>(); + this.added = canOverlap ? null : new ArrayList<>(); } public boolean finished() { return ticks <= -WAITING_TICKS; } - public boolean overlaps() { return added == null; } - - public void removeAdded(Collection positions) { - if (!overlaps()) - positions.removeAll(added); - } + public boolean canOverlap() { return added == null; } public List tick(World world) { if (finished()) @@ -57,10 +53,6 @@ public class SoulPulseEffect { ticks -= TICKS_PER_LAYER; spawns.addAll(getSoulSpawns(world)); } - - if (!overlaps()) - added.addAll(spawns); - return spawns; } @@ -78,11 +70,18 @@ public class SoulPulseEffect { } public static boolean canSpawnSoulAt(World world, BlockPos at) { + EntityType dummy = EntityType.ZOMBIE; + double dummyWidth = 0.2, dummyHeight = 0.75; + double w2 = dummyWidth / 2; + return world != null - && WorldEntitySpawner.canCreatureTypeSpawnAtLocation( - EntitySpawnPlacementRegistry.PlacementType.ON_GROUND, - world, at, EntityType.ZOMBIE) - && world.getLightLevel(LightType.BLOCK, at) < 8; + && WorldEntitySpawner.canCreatureTypeSpawnAtLocation( + EntitySpawnPlacementRegistry.PlacementType.ON_GROUND, world, at, dummy) + && world.getLightLevel(LightType.BLOCK, at) < 8 + && world.getBlockCollisions(null, new AxisAlignedBB( + at.getX() + 0.5 - w2, at.getY(), at.getZ() + 0.5 - w2, + at.getX() + 0.5 + w2, at.getY() + dummyHeight, at.getZ() + 0.5 + w2 + ), (a,b) -> true).allMatch(VoxelShape::isEmpty); } public static void spawnParticles(World world, BlockPos at) { @@ -90,7 +89,7 @@ public class SoulPulseEffect { return; Vector3d p = Vector3d.of(at); - world.addParticle(new SoulParticle.Data(), p.x + 0.5, p.y + 0.5, p.z + 0.5, 0, 0, 0); + world.addOptionalParticle(new SoulParticle.Data(), p.x + 0.5, p.y + 0.5, p.z + 0.5, 0, 0, 0); world.addParticle(new SoulBaseParticle.Data(), p.x + 0.5, p.y + 0.01, p.z + 0.5, 0, 0, 0); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffectHandler.java b/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffectHandler.java index 95f74d2cd..feb43836f 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffectHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffectHandler.java @@ -3,18 +3,13 @@ package com.simibubi.create.content.curiosities.bell; import java.util.ArrayList; import java.util.HashSet; import java.util.List; -import java.util.Map; -import java.util.Objects; import java.util.Set; import java.util.function.Supplier; -import java.util.stream.Collectors; import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.SimplePacketBase; -import com.sun.org.apache.xpath.internal.operations.Bool; - import net.minecraft.network.PacketBuffer; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -34,29 +29,31 @@ public class SoulPulseEffectHandler { public void tick(World world) { for (SoulPulseEffect pulse : pulses) { - List added = pulse.tick(world); - if (added == null) + List spawns = pulse.tick(world); + if (spawns == null) continue; - if (pulse.overlaps()) { - for (BlockPos pos : added) { + if (pulse.canOverlap()) { + for (BlockPos pos : spawns) { SoulPulseEffect.spawnParticles(world, pos); } } else { - for (BlockPos pos : added) { + for (BlockPos pos : spawns) { if (occupied.contains(pos)) continue; + SoulPulseEffect.spawnParticles(world, pos); + pulse.added.add(pos); occupied.add(pos); } } } - Map> split = pulses.stream() - .collect(Collectors.partitioningBy(SoulPulseEffect::finished)); - for (SoulPulseEffect finished : split.get(true)) - finished.removeAdded(occupied); - pulses = split.get(false); + for (SoulPulseEffect pulse : pulses) { + if (pulse.finished() && !pulse.canOverlap()) + occupied.removeAll(pulse.added); + } + pulses.removeIf(SoulPulseEffect::finished); } public void refresh() { @@ -64,9 +61,9 @@ public class SoulPulseEffectHandler { occupied.clear(); } - public static void sendPulsePacket(World world, BlockPos at, int distance, boolean overlaps) { + public static void sendPulsePacket(World world, BlockPos at, int distance, boolean canOverlap) { Chunk chunk = world.getChunkAt(at); - AllPackets.channel.send(PacketDistributor.TRACKING_CHUNK.with(() -> chunk), new Packet(at, distance, overlaps)); + AllPackets.channel.send(PacketDistributor.TRACKING_CHUNK.with(() -> chunk), new Packet(at, distance, canOverlap)); } private void handlePulse(BlockPos pos, int distance, boolean overlaps) { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index 7c7e9050b..276b4a465 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -56,7 +56,7 @@ public class StandardRecipeGen extends CreateRecipeProvider { /* * Recipes are added through fields, so one can navigate to the right one easily - * + * * (Ctrl-o) in Eclipse */ @@ -172,7 +172,15 @@ public class StandardRecipeGen extends CreateRecipeProvider { .key('O', I.ironSheet()) .patternLine(" E") .patternLine(" O ") - .patternLine("E ")) + .patternLine("E ")), + + PECULIAR_BELL = create(AllBlocks.PECULIAR_BELL).unlockedByTag(I::brass) + .viaShaped(b -> b.key('I', I.brass()) + .key('S', I.brassSheet()) + .key('G', Items.GHAST_TEAR) + .patternLine(" I ") + .patternLine("IGI") + .patternLine("S S")) ; @@ -969,14 +977,14 @@ public class StandardRecipeGen extends CreateRecipeProvider { .patternLine("P P") .patternLine("P P") .patternLine("G G")), - + LINKED_CONTROLLER = create(AllItems.LINKED_CONTROLLER).unlockedBy(AllBlocks.REDSTONE_LINK::get) .viaShaped(b -> b.key('S', ItemTags.WOODEN_BUTTONS) .key('P', AllBlocks.REDSTONE_LINK.get()) .patternLine("SSS") .patternLine(" P ") .patternLine("SSS")), - + CRAFTING_BLUEPRINT = create(AllItems.CRAFTING_BLUEPRINT).unlockedBy(() -> Items.CRAFTING_TABLE) .viaShapeless(b -> b.addIngredient(Items.PAINTING) .addIngredient(Items.CRAFTING_TABLE)), diff --git a/src/main/resources/assets/create/lang/default/tooltips.json b/src/main/resources/assets/create/lang/default/tooltips.json index 4ac29920b..69aa10b5e 100644 --- a/src/main/resources/assets/create/lang/default/tooltips.json +++ b/src/main/resources/assets/create/lang/default/tooltips.json @@ -187,7 +187,7 @@ "item.create.linked_controller.tooltip.behaviour3": "Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.diving_helmet.tooltip": "DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the weilder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "When Worn", "item.create.diving_helmet.tooltip.behaviour1": "Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -201,7 +201,7 @@ "item.create.diving_boots.tooltip": "DIVING BOOTS", "item.create.diving_boots.tooltip.summary": "A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", "item.create.diving_boots.tooltip.condition1": "When Worn", - "item.create.diving_boots.tooltip.behaviour1": "Weilder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Weilder also is no longer affected by _Mechanical_ _Belts_.", + "item.create.diving_boots.tooltip.behaviour1": "Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", "item.create.crafting_blueprint.tooltip": "CRAFTING BLUEPRINT", "item.create.crafting_blueprint.tooltip.summary": "_Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", @@ -215,6 +215,14 @@ "item.create.minecart_coupling.tooltip.condition1": "When Used on Minecart", "item.create.minecart_coupling.tooltip.behaviour1": "_Couples_ two Minecarts together, attempting to keep them at a _constant distance_ while moving.", + "block.create.peculiar_bell.tooltip": "PECULIAR BELL", + "block.create.peculiar_bell.tooltip.summary": "A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + + "block.create.cursed_bell.tooltip": "CURSED BELL", + "block.create.cursed_bell.tooltip.summary": "A spooky brass bell haunted by lost souls of the Nether.", + "block.create.cursed_bell.tooltip.condition1": "When Held or Rang", + "block.create.cursed_bell.tooltip.behaviour1": "Highlights nearby dark spots on which Hostile Mobs could spawn.", + "create.gui.chromatic_projector.title": "Chromatic Projector", "create.gui.chromatic_projector.filter.invert": "Invert", "create.gui.chromatic_projector.filter.sepia": "Sepia", @@ -233,5 +241,5 @@ "create.gui.chromatic_projector.density": "Density", "create.gui.chromatic_projector.fade": "Fade", "create.gui.chromatic_projector.blend": "Blend" - + } diff --git a/src/main/resources/assets/create/models/block/cursed_bell/bell.json b/src/main/resources/assets/create/models/block/cursed_bell/bell.json index dd1b4168c..161de430f 100644 --- a/src/main/resources/assets/create/models/block/cursed_bell/bell.json +++ b/src/main/resources/assets/create/models/block/cursed_bell/bell.json @@ -1,92 +1,436 @@ { "credit": "Made with Blockbench", "textures": { - "0": "create:block/bell", + "0": "create:block/bell_anim", "particle": "create:block/bell" }, "elements": [ { - "from": [14, 7, 7], - "to": [16, 9, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "from": [ + 14, + 7, + 7 + ], + "to": [ + 16, + 9, + 9 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 8, + 8, + 8 + ] + }, "faces": { - "north": {"uv": [10.5, 6, 9.5, 7], "texture": "#0"}, - "east": {"uv": [9.5, 7, 10.5, 8], "rotation": 90, "texture": "#0"}, - "south": {"uv": [9.5, 6, 10.5, 7], "texture": "#0"}, - "west": {"uv": [10, 7, 10.5, 7.5], "texture": "#0"}, - "up": {"uv": [9.5, 5, 10.5, 6], "texture": "#0"}, - "down": {"uv": [9.5, 7, 10.5, 8], "texture": "#0"} + "north": { + "uv": [ + 10.5, + 6, + 9.5, + 7 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 9.5, + 7, + 10.5, + 8 + ], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [ + 9.5, + 6, + 10.5, + 7 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 10, + 7, + 10.5, + 7.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9.5, + 5, + 10.5, + 6 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9.5, + 7, + 10.5, + 8 + ], + "texture": "#0" + } } }, { - "from": [0, 7, 7], - "to": [2, 9, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "from": [ + 0, + 7, + 7 + ], + "to": [ + 2, + 9, + 9 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 8, + 8, + 8 + ] + }, "faces": { - "north": {"uv": [9.5, 6, 10.5, 7], "texture": "#0"}, - "east": {"uv": [10, 7, 10.5, 7.5], "texture": "#0"}, - "south": {"uv": [10.5, 6, 9.5, 7], "texture": "#0"}, - "west": {"uv": [9.5, 7, 10.5, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [9.5, 5, 10.5, 6], "rotation": 180, "texture": "#0"}, - "down": {"uv": [9.5, 7, 10.5, 8], "rotation": 180, "texture": "#0"} + "north": { + "uv": [ + 9.5, + 6, + 10.5, + 7 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 10, + 7, + 10.5, + 7.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 10.5, + 6, + 9.5, + 7 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 9.5, + 7, + 10.5, + 8 + ], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [ + 9.5, + 5, + 10.5, + 6 + ], + "rotation": 180, + "texture": "#0" + }, + "down": { + "uv": [ + 9.5, + 7, + 10.5, + 8 + ], + "rotation": 180, + "texture": "#0" + } } }, { - "from": [3, 0, 3], - "to": [13, 2, 13], + "from": [ + 3, + 0, + 3 + ], + "to": [ + 13, + 2, + 13 + ], "faces": { - "north": {"uv": [0, 15, 5, 16], "texture": "#0"}, - "east": {"uv": [0, 15, 5, 16], "texture": "#0"}, - "south": {"uv": [0, 15, 5, 16], "texture": "#0"}, - "west": {"uv": [0, 15, 5, 16], "texture": "#0"}, - "up": {"uv": [0, 10, 5, 15], "texture": "#0"}, - "down": {"uv": [5, 10, 10, 15], "texture": "#0"} + "north": { + "uv": [ + 0, + 15, + 5, + 16 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 15, + 5, + 16 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 15, + 5, + 16 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 15, + 5, + 16 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 10, + 5, + 15 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 5, + 10, + 10, + 15 + ], + "texture": "#0" + } } }, { - "from": [4, 2, 4], - "to": [12, 11, 12], + "from": [ + 4, + 2, + 4 + ], + "to": [ + 12, + 11, + 12 + ], "faces": { - "north": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, - "east": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, - "south": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, - "west": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, - "up": {"uv": [12, 0, 16, 4], "texture": "#0"} + "north": { + "uv": [ + 8, + 0, + 12, + 4.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 8, + 0, + 12, + 4.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 8, + 0, + 12, + 4.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 8, + 0, + 12, + 4.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 12, + 0, + 16, + 4 + ], + "texture": "#0" + } } }, { - "from": [7, 11, 7], - "to": [9, 15, 9], + "from": [ + 7, + 11, + 7 + ], + "to": [ + 9, + 15, + 9 + ], "faces": { - "north": {"uv": [8, 6, 9, 8], "texture": "#0"}, - "east": {"uv": [8, 6, 9, 8], "texture": "#0"}, - "south": {"uv": [8, 6, 9, 8], "texture": "#0"}, - "west": {"uv": [8, 6, 9, 8], "texture": "#0"}, - "up": {"uv": [8, 5, 9, 6], "texture": "#0"} + "north": { + "uv": [ + 8, + 6, + 9, + 8 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 8, + 6, + 9, + 8 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 8, + 6, + 9, + 8 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 8, + 6, + 9, + 8 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8, + 5, + 9, + 6 + ], + "texture": "#0" + } } }, { - "from": [0, 0, 8], - "to": [16, 16, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.5]}, + "from": [ + 0, + 0, + 8 + ], + "to": [ + 16, + 16, + 9 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 8, + 8, + 8.5 + ] + }, "faces": { - "north": {"uv": [0, 0, 8, 8], "texture": "#0"} + "north": { + "uv": [ + 0, + 0, + 8, + 8 + ], + "texture": "#0" + } } }, { - "from": [0, 0, 7], - "to": [16, 16, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.5]}, + "from": [ + 0, + 0, + 7 + ], + "to": [ + 16, + 16, + 8 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 8, + 8, + 8.5 + ] + }, "faces": { - "south": {"uv": [0, 0, 8, 8], "texture": "#0"} + "south": { + "uv": [ + 0, + 0, + 8, + 8 + ], + "texture": "#0" + } } } ], "groups": [ { "name": "Bell", - "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4, 5, 6] + "origin": [ + 8, + 8, + 8 + ], + "children": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/create/models/block/cursed_bell/block_ceiling.json b/src/main/resources/assets/create/models/block/cursed_bell/block_ceiling.json index c3879f2cc..2616af7a7 100644 --- a/src/main/resources/assets/create/models/block/cursed_bell/block_ceiling.json +++ b/src/main/resources/assets/create/models/block/cursed_bell/block_ceiling.json @@ -2,7 +2,8 @@ "credit": "Made with Blockbench", "textures": { "1": "create:block/bell_frame_side", - "2": "create:block/bell_frame" + "2": "create:block/bell_frame", + "particle": "create:block/bell" }, "elements": [ { @@ -33,4 +34,4 @@ "children": [0, 1] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/create/models/block/cursed_bell/block_double_wall.json b/src/main/resources/assets/create/models/block/cursed_bell/block_double_wall.json index 990f666e1..52a9e266d 100644 --- a/src/main/resources/assets/create/models/block/cursed_bell/block_double_wall.json +++ b/src/main/resources/assets/create/models/block/cursed_bell/block_double_wall.json @@ -1,6 +1,32 @@ { - "credit": "Made with Blockbench", - "textures": {}, - "elements": [], - "groups": [] + "credit": "Made with Blockbench", + "textures": { + "1": "create:block/bell_frame_side", + "particle": "create:block/bell" + }, + "elements": [ + { + "from": [0.1, 0, 0], + "to": [15.9, 16, 16], + "faces": { + "south": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [15.9, 0, 0], + "to": [0.1, 16, 16], + "faces": { + "south": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "Frame", + "origin": [8, 8, 8], + "children": [0, 1] + } + ] } diff --git a/src/main/resources/assets/create/models/block/cursed_bell/block_floor.json b/src/main/resources/assets/create/models/block/cursed_bell/block_floor.json index f18e39060..6738c29b4 100644 --- a/src/main/resources/assets/create/models/block/cursed_bell/block_floor.json +++ b/src/main/resources/assets/create/models/block/cursed_bell/block_floor.json @@ -2,7 +2,8 @@ "credit": "Made with Blockbench", "textures": { "1": "create:block/bell_frame_side", - "2": "create:block/bell_frame" + "2": "create:block/bell_frame", + "particle": "create:block/bell" }, "elements": [ { @@ -31,4 +32,4 @@ "children": [0, 1] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/create/models/block/cursed_bell/block_single_wall.json b/src/main/resources/assets/create/models/block/cursed_bell/block_single_wall.json index 420017990..7bee57b84 100644 --- a/src/main/resources/assets/create/models/block/cursed_bell/block_single_wall.json +++ b/src/main/resources/assets/create/models/block/cursed_bell/block_single_wall.json @@ -1,6 +1,30 @@ { "credit": "Made with Blockbench", - "textures": {}, - "elements": [], - "groups": [] + "textures": { + "1": "create:block/bell_frame_side", + "particle": "create:block/bell" + }, + "elements": [ + { + "from": [0.1, 0, 0], + "to": [15.9, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [15.9, 0, 0], + "to": [0.1, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "Frame", + "origin": [8, 8, 8], + "children": [0, 1] + } + ] } diff --git a/src/main/resources/assets/create/models/block/cursed_bell/item.json b/src/main/resources/assets/create/models/block/cursed_bell/item.json index dd1b4168c..9a589a6b2 100644 --- a/src/main/resources/assets/create/models/block/cursed_bell/item.json +++ b/src/main/resources/assets/create/models/block/cursed_bell/item.json @@ -1,7 +1,8 @@ { "credit": "Made with Blockbench", + "parent": "block/block", "textures": { - "0": "create:block/bell", + "0": "create:block/bell_anim", "particle": "create:block/bell" }, "elements": [ @@ -89,4 +90,4 @@ "children": [0, 1, 2, 3, 4, 5, 6] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/create/models/block/peculiar_bell/bell.json b/src/main/resources/assets/create/models/block/peculiar_bell/bell.json new file mode 100644 index 000000000..d6e26bbc3 --- /dev/null +++ b/src/main/resources/assets/create/models/block/peculiar_bell/bell.json @@ -0,0 +1,92 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/bell", + "particle": "create:block/bell" + }, + "elements": [ + { + "from": [14, 7, 7], + "to": [16, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 6, 9.5, 7], "texture": "#0"}, + "east": {"uv": [9.5, 7, 10.5, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [9.5, 6, 10.5, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 10.5, 7.5], "texture": "#0"}, + "up": {"uv": [9.5, 5, 10.5, 6], "texture": "#0"}, + "down": {"uv": [9.5, 7, 10.5, 8], "texture": "#0"} + } + }, + { + "from": [0, 7, 7], + "to": [2, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9.5, 6, 10.5, 7], "texture": "#0"}, + "east": {"uv": [10, 7, 10.5, 7.5], "texture": "#0"}, + "south": {"uv": [10.5, 6, 9.5, 7], "texture": "#0"}, + "west": {"uv": [9.5, 7, 10.5, 8], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9.5, 5, 10.5, 6], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9.5, 7, 10.5, 8], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [3, 0, 3], + "to": [13, 2, 13], + "faces": { + "north": {"uv": [0, 15, 5, 16], "texture": "#0"}, + "east": {"uv": [0, 15, 5, 16], "texture": "#0"}, + "south": {"uv": [0, 15, 5, 16], "texture": "#0"}, + "west": {"uv": [0, 15, 5, 16], "texture": "#0"}, + "up": {"uv": [0, 10, 5, 15], "texture": "#0"}, + "down": {"uv": [5, 10, 10, 15], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 11, 12], + "faces": { + "north": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, + "east": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, + "south": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, + "west": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, + "up": {"uv": [12, 0, 16, 4], "texture": "#0"} + } + }, + { + "from": [7, 11, 7], + "to": [9, 15, 9], + "faces": { + "north": {"uv": [8, 6, 9, 8], "texture": "#0"}, + "east": {"uv": [8, 6, 9, 8], "texture": "#0"}, + "south": {"uv": [8, 6, 9, 8], "texture": "#0"}, + "west": {"uv": [8, 6, 9, 8], "texture": "#0"}, + "up": {"uv": [8, 5, 9, 6], "texture": "#0"} + } + }, + { + "from": [0, 0, 8], + "to": [16, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.5]}, + "faces": { + "north": {"uv": [0, 0, 8, 8], "texture": "#0"} + } + }, + { + "from": [0, 0, 7], + "to": [16, 16, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.5]}, + "faces": { + "south": {"uv": [0, 0, 8, 8], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "Bell", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6] + } + ] +} diff --git a/src/main/resources/assets/create/models/block/peculiar_bell/block_ceiling.json b/src/main/resources/assets/create/models/block/peculiar_bell/block_ceiling.json new file mode 100644 index 000000000..2616af7a7 --- /dev/null +++ b/src/main/resources/assets/create/models/block/peculiar_bell/block_ceiling.json @@ -0,0 +1,37 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "create:block/bell_frame_side", + "2": "create:block/bell_frame", + "particle": "create:block/bell" + }, + "elements": [ + { + "from": [0.1, 0, 0], + "to": [15.9, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 8]}, + "faces": { + "east": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#1"}, + "west": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#1"}, + "up": {"uv": [0, 0, 15.8, 16], "texture": "#2"} + } + }, + { + "from": [15.9, 0, 0], + "to": [0.1, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 8]}, + "faces": { + "east": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#1"}, + "west": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + } + ], + "groups": [ + { + "name": "Frame", + "origin": [8, 8, 8], + "children": [0, 1] + } + ] +} diff --git a/src/main/resources/assets/create/models/block/peculiar_bell/block_double_wall.json b/src/main/resources/assets/create/models/block/peculiar_bell/block_double_wall.json new file mode 100644 index 000000000..52a9e266d --- /dev/null +++ b/src/main/resources/assets/create/models/block/peculiar_bell/block_double_wall.json @@ -0,0 +1,32 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "create:block/bell_frame_side", + "particle": "create:block/bell" + }, + "elements": [ + { + "from": [0.1, 0, 0], + "to": [15.9, 16, 16], + "faces": { + "south": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [15.9, 0, 0], + "to": [0.1, 16, 16], + "faces": { + "south": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "Frame", + "origin": [8, 8, 8], + "children": [0, 1] + } + ] +} diff --git a/src/main/resources/assets/create/models/block/peculiar_bell/block_floor.json b/src/main/resources/assets/create/models/block/peculiar_bell/block_floor.json new file mode 100644 index 000000000..6738c29b4 --- /dev/null +++ b/src/main/resources/assets/create/models/block/peculiar_bell/block_floor.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "create:block/bell_frame_side", + "2": "create:block/bell_frame", + "particle": "create:block/bell" + }, + "elements": [ + { + "from": [0.1, 0, 0], + "to": [15.9, 16, 16], + "faces": { + "east": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 15.8, 16], "texture": "#2"} + } + }, + { + "from": [15.9, 0, 0], + "to": [0.1, 16, 16], + "faces": { + "east": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + } + ], + "groups": [ + { + "name": "Frame", + "origin": [8, 8, 8], + "children": [0, 1] + } + ] +} diff --git a/src/main/resources/assets/create/models/block/peculiar_bell/block_single_wall.json b/src/main/resources/assets/create/models/block/peculiar_bell/block_single_wall.json new file mode 100644 index 000000000..7bee57b84 --- /dev/null +++ b/src/main/resources/assets/create/models/block/peculiar_bell/block_single_wall.json @@ -0,0 +1,30 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "create:block/bell_frame_side", + "particle": "create:block/bell" + }, + "elements": [ + { + "from": [0.1, 0, 0], + "to": [15.9, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [15.9, 0, 0], + "to": [0.1, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "Frame", + "origin": [8, 8, 8], + "children": [0, 1] + } + ] +} diff --git a/src/main/resources/assets/create/models/block/peculiar_bell/item.json b/src/main/resources/assets/create/models/block/peculiar_bell/item.json new file mode 100644 index 000000000..f79362efc --- /dev/null +++ b/src/main/resources/assets/create/models/block/peculiar_bell/item.json @@ -0,0 +1,93 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "create:block/bell", + "particle": "create:block/bell" + }, + "elements": [ + { + "from": [14, 7, 7], + "to": [16, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 6, 9.5, 7], "texture": "#0"}, + "east": {"uv": [9.5, 7, 10.5, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [9.5, 6, 10.5, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 10.5, 7.5], "texture": "#0"}, + "up": {"uv": [9.5, 5, 10.5, 6], "texture": "#0"}, + "down": {"uv": [9.5, 7, 10.5, 8], "texture": "#0"} + } + }, + { + "from": [0, 7, 7], + "to": [2, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9.5, 6, 10.5, 7], "texture": "#0"}, + "east": {"uv": [10, 7, 10.5, 7.5], "texture": "#0"}, + "south": {"uv": [10.5, 6, 9.5, 7], "texture": "#0"}, + "west": {"uv": [9.5, 7, 10.5, 8], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9.5, 5, 10.5, 6], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9.5, 7, 10.5, 8], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [3, 0, 3], + "to": [13, 2, 13], + "faces": { + "north": {"uv": [0, 15, 5, 16], "texture": "#0"}, + "east": {"uv": [0, 15, 5, 16], "texture": "#0"}, + "south": {"uv": [0, 15, 5, 16], "texture": "#0"}, + "west": {"uv": [0, 15, 5, 16], "texture": "#0"}, + "up": {"uv": [0, 10, 5, 15], "texture": "#0"}, + "down": {"uv": [5, 10, 10, 15], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 11, 12], + "faces": { + "north": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, + "east": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, + "south": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, + "west": {"uv": [8, 0, 12, 4.5], "texture": "#0"}, + "up": {"uv": [12, 0, 16, 4], "texture": "#0"} + } + }, + { + "from": [7, 11, 7], + "to": [9, 15, 9], + "faces": { + "north": {"uv": [8, 6, 9, 8], "texture": "#0"}, + "east": {"uv": [8, 6, 9, 8], "texture": "#0"}, + "south": {"uv": [8, 6, 9, 8], "texture": "#0"}, + "west": {"uv": [8, 6, 9, 8], "texture": "#0"}, + "up": {"uv": [8, 5, 9, 6], "texture": "#0"} + } + }, + { + "from": [0, 0, 8], + "to": [16, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.5]}, + "faces": { + "north": {"uv": [0, 0, 8, 8], "texture": "#0"} + } + }, + { + "from": [0, 0, 7], + "to": [16, 16, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.5]}, + "faces": { + "south": {"uv": [0, 0, 8, 8], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "Bell", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6] + } + ] +} diff --git a/src/main/resources/assets/create/sounds/cursed_bell_convert.ogg b/src/main/resources/assets/create/sounds/cursed_bell_convert.ogg new file mode 100644 index 0000000000000000000000000000000000000000..171df3dc9c35bf1ac45d262a3611befb4582d5fc GIT binary patch literal 56720 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�tj82ePK>?nPd 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/sounds/cursed_bell_use.ogg b/src/main/resources/assets/create/sounds/cursed_bell_use.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a82907e9cfe2c557ca03e8490a8660a21ebb05bf GIT binary patch literal 49118 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/bell_anim.png b/src/main/resources/assets/create/textures/block/bell_anim.png new file mode 100644 index 0000000000000000000000000000000000000000..7ed660e49f7aefc9ab7923ad6c8963a6371db226 GIT binary patch literal 6600 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/bell_anim.png.mcmeta b/src/main/resources/assets/create/textures/block/bell_anim.png.mcmeta new file mode 100644 index 000000000..c6f8b9bd5 --- /dev/null +++ b/src/main/resources/assets/create/textures/block/bell_anim.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 2 + } +} \ No newline at end of file