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 {
const val MOD_ID = OverdriveThatMatters.MOD_ID
private lateinit var blockModelProvider: MatteryBlockModelProvider
private lateinit var itemModelProvider: MatteryItemModelProvider
private lateinit var blockStateProvider: MatteryBlockStateProvider
private lateinit var lootTableProvider: LootTables
private lateinit var recipeProvider: MatteryRecipeProvider
private lateinit var lootModifier: LootModifiers
private lateinit var languageProvider: MatteryLanguageProvider
var blockModelProvider: MatteryBlockModelProvider by WriteOnce()
private set
var itemModelProvider: MatteryItemModelProvider by WriteOnce()
private set
var blockStateProvider: MatteryBlockStateProvider by WriteOnce()
private set
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) {
blockModelProvider.decorativeCubeAll(*blocks)

View File

@ -1,11 +1,16 @@
package ru.dbotthepony.mc.otm.datagen
import net.minecraft.resources.ResourceLocation
import net.minecraft.sounds.SoundEvent
import net.minecraftforge.common.data.SoundDefinition
import net.minecraftforge.common.data.SoundDefinitionsProvider
import net.minecraftforge.data.event.GatherDataEvent
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) {
override fun registerSounds() {
add(MSoundEvents.PLASMA_WEAPON_OVERHEAT,
@ -19,5 +24,21 @@ class SoundDataProvider(event: GatherDataEvent) : SoundDefinitionsProvider(event
add(MSoundEvents.RIFLE_SHOT,
definition().subtitle("otm.sound.rifle_shot")
.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("plasma_weapon_overheat", "Plasma weapon overheats")
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.network.chat.MutableComponent
import net.minecraft.network.chat.contents.TranslatableContents
import net.minecraft.sounds.SoundEvent
import net.minecraft.world.effect.MobEffect
import net.minecraft.world.entity.EntityType
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 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: SoundEvent, value: String) = slave.add("otm.sound.${key.location.path}", value)
}
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.MItems
import ru.dbotthepony.mc.otm.registry.MRegistry
import ru.dbotthepony.mc.otm.registry.MSoundEvents
fun addTags(tagsProvider: TagsProvider) {
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.resources.ResourceLocation
import net.minecraft.tags.BlockTags
import net.minecraft.tags.GameEventTags
import net.minecraft.tags.TagKey
import net.minecraft.world.item.Item
import net.minecraft.world.item.Tier
import net.minecraft.world.item.Tiers
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.gameevent.GameEvent
import net.minecraftforge.data.event.GatherDataEvent
import ru.dbotthepony.mc.otm.datagen.DataGen
import net.minecraft.data.tags.TagsProvider as MinecraftTagsProvider
@ -211,6 +213,9 @@ class TagsProvider(
val rawOres = items.forge("raw_ores")
val wires = items.forge("wires")
val gameEvents = Delegate(Registry.GAME_EVENT)
val vibrations = gameEvents.appender(GameEventTags.VIBRATIONS)
init {
event.generator.addProvider(true, blocks)
event.generator.addProvider(true, items)

View File

@ -4,6 +4,7 @@ import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.nbt.CompoundTag
import net.minecraft.network.chat.Component
import net.minecraft.sounds.SoundSource
import net.minecraft.world.Container
import net.minecraft.world.entity.player.Inventory
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.container.set
import ru.dbotthepony.mc.otm.core.set
import ru.dbotthepony.mc.otm.registry.MSoundEvents
class CargoCrateBlockEntity(
p_155229_: BlockPos,
@ -36,6 +38,7 @@ class CargoCrateBlockEntity(
fun onPlayerOpen() {
if (interactingPlayers++ == 0) {
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 PLASMA_WEAPON_OVERHEAT: SoundEvent by make("item.plasma_weapon_overheat")
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) {
registry.register(bus)