mirror of
https://github.com/exogen/t2-mapper.git
synced 2026-07-16 08:55:52 +00:00
add debug mode
This commit is contained in:
parent
7d78be42af
commit
9e021c0061
4 changed files with 46 additions and 2 deletions
|
|
@ -32,6 +32,7 @@ function getCachedAudioBuffer(
|
||||||
}
|
}
|
||||||
|
|
||||||
export function AudioEmitter({ object }: { object: ConsoleObject }) {
|
export function AudioEmitter({ object }: { object: ConsoleObject }) {
|
||||||
|
const { debugMode } = useSettings();
|
||||||
const fileName = getProperty(object, "fileName")?.value ?? "";
|
const fileName = getProperty(object, "fileName")?.value ?? "";
|
||||||
const volume = parseFloat(getProperty(object, "volume")?.value ?? "1");
|
const volume = parseFloat(getProperty(object, "volume")?.value ?? "1");
|
||||||
const minDistance = parseFloat(
|
const minDistance = parseFloat(
|
||||||
|
|
@ -200,5 +201,15 @@ export function AudioEmitter({ object }: { object: ConsoleObject }) {
|
||||||
}
|
}
|
||||||
}, [audioEnabled]);
|
}, [audioEnabled]);
|
||||||
|
|
||||||
return null;
|
return debugMode ? (
|
||||||
|
<mesh position={emitterPosRef.current}>
|
||||||
|
<sphereGeometry args={[minDistance, 12, 12]} />
|
||||||
|
<meshStandardMaterial
|
||||||
|
color="#00ff00"
|
||||||
|
wireframe
|
||||||
|
toneMapped={false}
|
||||||
|
fog={false}
|
||||||
|
/>
|
||||||
|
</mesh>
|
||||||
|
) : null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@ export function InspectorControls({
|
||||||
setFov,
|
setFov,
|
||||||
audioEnabled,
|
audioEnabled,
|
||||||
setAudioEnabled,
|
setAudioEnabled,
|
||||||
|
debugMode,
|
||||||
|
setDebugMode,
|
||||||
} = useSettings();
|
} = useSettings();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -69,6 +71,17 @@ export function InspectorControls({
|
||||||
/>
|
/>
|
||||||
<label htmlFor="audioInput">Audio?</label>
|
<label htmlFor="audioInput">Audio?</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="CheckboxField">
|
||||||
|
<input
|
||||||
|
id="debugInput"
|
||||||
|
type="checkbox"
|
||||||
|
checked={debugMode}
|
||||||
|
onChange={(event) => {
|
||||||
|
setDebugMode(event.target.checked);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<label htmlFor="debugInput">Debug?</label>
|
||||||
|
</div>
|
||||||
<div className="Field">
|
<div className="Field">
|
||||||
<label htmlFor="fovInput">FOV</label>
|
<label htmlFor="fovInput">FOV</label>
|
||||||
<input
|
<input
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,23 @@ const KEYBOARD_CONTROLS = [
|
||||||
];
|
];
|
||||||
|
|
||||||
export function ObserverControls() {
|
export function ObserverControls() {
|
||||||
|
// Don't let KeyboardControls handle stuff when metaKey is held.
|
||||||
|
useEffect(() => {
|
||||||
|
const handleKey = (e: KeyboardEvent) => {
|
||||||
|
if (e.metaKey) {
|
||||||
|
e.stopImmediatePropagation();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
window.addEventListener("keydown", handleKey, { capture: true });
|
||||||
|
window.addEventListener("keyup", handleKey, { capture: true });
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener("keydown", handleKey, { capture: true });
|
||||||
|
window.removeEventListener("keyup", handleKey, { capture: true });
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<KeyboardControls map={KEYBOARD_CONTROLS}>
|
<KeyboardControls map={KEYBOARD_CONTROLS}>
|
||||||
<CameraMovement />
|
<CameraMovement />
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ export function SettingsProvider({ children }: { children: ReactNode }) {
|
||||||
const [speedMultiplier, setSpeedMultiplier] = useState(1);
|
const [speedMultiplier, setSpeedMultiplier] = useState(1);
|
||||||
const [fov, setFov] = useState(90);
|
const [fov, setFov] = useState(90);
|
||||||
const [audioEnabled, setAudioEnabled] = useState(false);
|
const [audioEnabled, setAudioEnabled] = useState(false);
|
||||||
|
const [debugMode, setDebugMode] = useState(false);
|
||||||
|
|
||||||
const value = useMemo(
|
const value = useMemo(
|
||||||
() => ({
|
() => ({
|
||||||
|
|
@ -36,8 +37,10 @@ export function SettingsProvider({ children }: { children: ReactNode }) {
|
||||||
setFov,
|
setFov,
|
||||||
audioEnabled,
|
audioEnabled,
|
||||||
setAudioEnabled,
|
setAudioEnabled,
|
||||||
|
debugMode,
|
||||||
|
setDebugMode,
|
||||||
}),
|
}),
|
||||||
[fogEnabled, speedMultiplier, fov, audioEnabled]
|
[fogEnabled, speedMultiplier, fov, audioEnabled, debugMode, setDebugMode]
|
||||||
);
|
);
|
||||||
|
|
||||||
// Read persisted settings from localStoarge.
|
// Read persisted settings from localStoarge.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue