Strip all Phase references, TODO/FUTURE roadmap notes, and internal planning comments from the codebase. Run Prettier for consistent formatting across all Java files.
42 lines
1.3 KiB
Java
42 lines
1.3 KiB
Java
package com.tiedup.remake.v2.furniture;
|
|
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
/**
|
|
* Sound events for furniture interactions. All fields are optional
|
|
* -- null means "use the default sound" at runtime.
|
|
*
|
|
* <p>Loaded from the {@code "feedback"} block of a furniture JSON definition.
|
|
* When the entire block is absent, {@link #EMPTY} is used.</p>
|
|
*/
|
|
public record FurnitureFeedback(
|
|
/** Sound played when a player mounts the furniture. */
|
|
@Nullable ResourceLocation mountSound,
|
|
|
|
/** Sound played when a seat is locked. */
|
|
@Nullable ResourceLocation lockSound,
|
|
|
|
/** Sound played when a seat is unlocked. */
|
|
@Nullable ResourceLocation unlockSound,
|
|
|
|
/** Looping sound played while a player struggles in a locked seat. */
|
|
@Nullable ResourceLocation struggleLoopSound,
|
|
|
|
/** Sound played on successful escape. */
|
|
@Nullable ResourceLocation escapeSound,
|
|
|
|
/** Sound played when an action is denied (e.g., locked seat interaction). */
|
|
@Nullable ResourceLocation deniedSound
|
|
) {
|
|
/** Empty feedback -- all sounds null (use defaults). */
|
|
public static final FurnitureFeedback EMPTY = new FurnitureFeedback(
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
);
|
|
}
|