Cargo crate open sound

Fixes #41
This commit is contained in:
DBotThePony 2022-09-11 21:31:24 +07:00
parent e5d41bf456
commit 4beb660080
Signed by: DBot
GPG Key ID: DCC23B5715498507
9 changed files with 49 additions and 7 deletions

View File

@ -44,13 +44,20 @@ fun modLocation(string: String) = ResourceLocation(DataGen.MOD_ID, string)
object DataGen { object DataGen {
const val MOD_ID = OverdriveThatMatters.MOD_ID const val MOD_ID = OverdriveThatMatters.MOD_ID
private lateinit var blockModelProvider: MatteryBlockModelProvider var blockModelProvider: MatteryBlockModelProvider by WriteOnce()
private lateinit var itemModelProvider: MatteryItemModelProvider private set
private lateinit var blockStateProvider: MatteryBlockStateProvider var itemModelProvider: MatteryItemModelProvider by WriteOnce()
private lateinit var lootTableProvider: LootTables private set
private lateinit var recipeProvider: MatteryRecipeProvider var blockStateProvider: MatteryBlockStateProvider by WriteOnce()
private lateinit var lootModifier: LootModifiers private set
private lateinit var languageProvider: MatteryLanguageProvider var lootTableProvider: LootTables by WriteOnce()
private set
var recipeProvider: MatteryRecipeProvider by WriteOnce()
private set
var lootModifier: LootModifiers by WriteOnce()
private set
var languageProvider: MatteryLanguageProvider by WriteOnce()
private set
fun decorativeCubeAll(vararg blocks: Block) { fun decorativeCubeAll(vararg blocks: Block) {
blockModelProvider.decorativeCubeAll(*blocks) blockModelProvider.decorativeCubeAll(*blocks)

View File

@ -1,11 +1,16 @@
package ru.dbotthepony.mc.otm.datagen package ru.dbotthepony.mc.otm.datagen
import net.minecraft.resources.ResourceLocation import net.minecraft.resources.ResourceLocation
import net.minecraft.sounds.SoundEvent
import net.minecraftforge.common.data.SoundDefinition import net.minecraftforge.common.data.SoundDefinition
import net.minecraftforge.common.data.SoundDefinitionsProvider import net.minecraftforge.common.data.SoundDefinitionsProvider
import net.minecraftforge.data.event.GatherDataEvent import net.minecraftforge.data.event.GatherDataEvent
import ru.dbotthepony.mc.otm.registry.MSoundEvents import ru.dbotthepony.mc.otm.registry.MSoundEvents
fun SoundDefinition.subtitle(value: SoundEvent): SoundDefinition {
return subtitle("otm.sound." + value.location.path)
}
class SoundDataProvider(event: GatherDataEvent) : SoundDefinitionsProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) { class SoundDataProvider(event: GatherDataEvent) : SoundDefinitionsProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) {
override fun registerSounds() { override fun registerSounds() {
add(MSoundEvents.PLASMA_WEAPON_OVERHEAT, add(MSoundEvents.PLASMA_WEAPON_OVERHEAT,
@ -19,5 +24,21 @@ class SoundDataProvider(event: GatherDataEvent) : SoundDefinitionsProvider(event
add(MSoundEvents.RIFLE_SHOT, add(MSoundEvents.RIFLE_SHOT,
definition().subtitle("otm.sound.rifle_shot") definition().subtitle("otm.sound.rifle_shot")
.with(SoundDefinition.Sound.sound(modLocation("item/rifle_shot"), SoundDefinition.SoundType.SOUND))) .with(SoundDefinition.Sound.sound(modLocation("item/rifle_shot"), SoundDefinition.SoundType.SOUND)))
simple(MSoundEvents.CARGO_CRATE_OPEN)
}
private inline fun add(value: SoundEvent, block: SoundDefinition.() -> Unit) {
add(value, definition().subtitle(value).also(block))
}
private fun add(value: SoundEvent, path: String) {
add(value) {
with(SoundDefinition.Sound.sound(modLocation(path), SoundDefinition.SoundType.SOUND))
}
}
private fun simple(value: SoundEvent) {
add(value, value.location.path)
} }
} }

View File

@ -44,6 +44,8 @@ private fun sounds(provider: MatteryLanguageProvider) {
sound("rifle_shot", "Plasma rifle fires") sound("rifle_shot", "Plasma rifle fires")
sound("plasma_weapon_overheat", "Plasma weapon overheats") sound("plasma_weapon_overheat", "Plasma weapon overheats")
sound("player_become_android", "Player became android") sound("player_become_android", "Player became android")
sound(MSoundEvents.CARGO_CRATE_OPEN, "Cargo crate opened")
} }
} }

View File

@ -6,6 +6,7 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap
import net.minecraft.data.DataGenerator import net.minecraft.data.DataGenerator
import net.minecraft.network.chat.MutableComponent import net.minecraft.network.chat.MutableComponent
import net.minecraft.network.chat.contents.TranslatableContents import net.minecraft.network.chat.contents.TranslatableContents
import net.minecraft.sounds.SoundEvent
import net.minecraft.world.effect.MobEffect import net.minecraft.world.effect.MobEffect
import net.minecraft.world.entity.EntityType import net.minecraft.world.entity.EntityType
import net.minecraft.world.item.DyeColor import net.minecraft.world.item.DyeColor
@ -71,6 +72,7 @@ class MatteryLanguageProvider(private val gen: DataGenerator) {
fun misc(key: String, value: String) = slave.add("otm.$key", value) fun misc(key: String, value: String) = slave.add("otm.$key", value)
fun gui(key: String, value: String) = slave.add("otm.gui.$key", value) fun gui(key: String, value: String) = slave.add("otm.gui.$key", value)
fun sound(key: String, value: String) = slave.add("otm.sound.$key", value) fun sound(key: String, value: String) = slave.add("otm.sound.$key", value)
fun sound(key: SoundEvent, value: String) = slave.add("otm.sound.${key.location.path}", value)
} }
inner class Colors( inner class Colors(

View File

@ -5,6 +5,7 @@ import net.minecraft.world.item.Tiers
import ru.dbotthepony.mc.otm.registry.MBlocks import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.registry.MItems
import ru.dbotthepony.mc.otm.registry.MRegistry import ru.dbotthepony.mc.otm.registry.MRegistry
import ru.dbotthepony.mc.otm.registry.MSoundEvents
fun addTags(tagsProvider: TagsProvider) { fun addTags(tagsProvider: TagsProvider) {
tagsProvider.items.forge("pistons").add(Items.PISTON) tagsProvider.items.forge("pistons").add(Items.PISTON)

View File

@ -4,11 +4,13 @@ import it.unimi.dsi.fastutil.objects.ObjectArraySet
import net.minecraft.core.Registry import net.minecraft.core.Registry
import net.minecraft.resources.ResourceLocation import net.minecraft.resources.ResourceLocation
import net.minecraft.tags.BlockTags import net.minecraft.tags.BlockTags
import net.minecraft.tags.GameEventTags
import net.minecraft.tags.TagKey import net.minecraft.tags.TagKey
import net.minecraft.world.item.Item import net.minecraft.world.item.Item
import net.minecraft.world.item.Tier import net.minecraft.world.item.Tier
import net.minecraft.world.item.Tiers import net.minecraft.world.item.Tiers
import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.Block
import net.minecraft.world.level.gameevent.GameEvent
import net.minecraftforge.data.event.GatherDataEvent import net.minecraftforge.data.event.GatherDataEvent
import ru.dbotthepony.mc.otm.datagen.DataGen import ru.dbotthepony.mc.otm.datagen.DataGen
import net.minecraft.data.tags.TagsProvider as MinecraftTagsProvider import net.minecraft.data.tags.TagsProvider as MinecraftTagsProvider
@ -211,6 +213,9 @@ class TagsProvider(
val rawOres = items.forge("raw_ores") val rawOres = items.forge("raw_ores")
val wires = items.forge("wires") val wires = items.forge("wires")
val gameEvents = Delegate(Registry.GAME_EVENT)
val vibrations = gameEvents.appender(GameEventTags.VIBRATIONS)
init { init {
event.generator.addProvider(true, blocks) event.generator.addProvider(true, blocks)
event.generator.addProvider(true, items) event.generator.addProvider(true, items)

View File

@ -4,6 +4,7 @@ import net.minecraft.core.BlockPos
import net.minecraft.core.Direction import net.minecraft.core.Direction
import net.minecraft.nbt.CompoundTag import net.minecraft.nbt.CompoundTag
import net.minecraft.network.chat.Component import net.minecraft.network.chat.Component
import net.minecraft.sounds.SoundSource
import net.minecraft.world.Container import net.minecraft.world.Container
import net.minecraft.world.entity.player.Inventory import net.minecraft.world.entity.player.Inventory
import net.minecraft.world.entity.player.Player import net.minecraft.world.entity.player.Player
@ -21,6 +22,7 @@ import ru.dbotthepony.mc.otm.menu.CargoCrateMenu
import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.container.set import ru.dbotthepony.mc.otm.container.set
import ru.dbotthepony.mc.otm.core.set import ru.dbotthepony.mc.otm.core.set
import ru.dbotthepony.mc.otm.registry.MSoundEvents
class CargoCrateBlockEntity( class CargoCrateBlockEntity(
p_155229_: BlockPos, p_155229_: BlockPos,
@ -36,6 +38,7 @@ class CargoCrateBlockEntity(
fun onPlayerOpen() { fun onPlayerOpen() {
if (interactingPlayers++ == 0) { if (interactingPlayers++ == 0) {
level?.setBlock(blockPos, blockState.setValue(CargoCrateBlock.IS_OPEN, true), Block.UPDATE_CLIENTS) level?.setBlock(blockPos, blockState.setValue(CargoCrateBlock.IS_OPEN, true), Block.UPDATE_CLIENTS)
level?.playSound(null, blockPos, MSoundEvents.CARGO_CRATE_OPEN, SoundSource.BLOCKS, 1f, 0.8f + (level?.random?.nextFloat() ?: 1f) * 0.2f)
} }
} }

View File

@ -18,6 +18,7 @@ object MSoundEvents {
val RIFLE_SHOT: SoundEvent by make("item.rifle_shot") val RIFLE_SHOT: SoundEvent by make("item.rifle_shot")
val PLASMA_WEAPON_OVERHEAT: SoundEvent by make("item.plasma_weapon_overheat") val PLASMA_WEAPON_OVERHEAT: SoundEvent by make("item.plasma_weapon_overheat")
val PLAYER_BECOME_ANDROID: SoundEvent by make("player_become_android") val PLAYER_BECOME_ANDROID: SoundEvent by make("player_become_android")
val CARGO_CRATE_OPEN: SoundEvent by make("cargo_crate_open")
internal fun register(bus: IEventBus) { internal fun register(bus: IEventBus) {
registry.register(bus) registry.register(bus)