New project: Party cathedral
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import * as THREE from 'three';
|
||||
|
||||
export let state = undefined;
|
||||
|
||||
export function initState() {
|
||||
state = {
|
||||
// Core Three.js components
|
||||
scene: null,
|
||||
camera: null,
|
||||
renderer: null,
|
||||
clock: new THREE.Clock(),
|
||||
tvScreen: null,
|
||||
tvScreenPowered: false,
|
||||
videoTexture: null,
|
||||
screenLight: null, // Light from the crystal ball
|
||||
candleLight: null, // Light from the candle
|
||||
effectsManager: null,
|
||||
screenEffect: {
|
||||
active: false,
|
||||
type: 0,
|
||||
startTime: 0,
|
||||
duration: 1000, // in ms
|
||||
onComplete: null,
|
||||
easing: (t) => t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t, // easeInOutQuad
|
||||
},
|
||||
|
||||
|
||||
// Video Playback
|
||||
isVideoLoaded: false,
|
||||
videoUrls: [],
|
||||
currentVideoIndex: -1,
|
||||
|
||||
// Scene constants
|
||||
originalLampIntensity: 0.3,
|
||||
originalScreenIntensity: 0.2,
|
||||
screenIntensityPulse: 0.2,
|
||||
roomSize: 5,
|
||||
roomHeight: 3,
|
||||
debugLight: false,
|
||||
|
||||
// DOM Elements
|
||||
container: document.body,
|
||||
videoElement: document.getElementById('video'),
|
||||
fileInput: document.getElementById('fileInput'),
|
||||
loadTapeButton: document.getElementById('loadTapeButton'),
|
||||
|
||||
// Utilities
|
||||
loader: new THREE.TextureLoader(),
|
||||
pictureFrames: [],
|
||||
raycaster: new THREE.Raycaster(),
|
||||
seed: 12345,
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user