Complete 3D metaverse platform with: - Three.js 3D rendering - Cannon.js physics engine - Pointer lock controls - Procedural cityscape - Floating islands - Portal system - Particle effects - WebXR/VR support ready - Multiplayer ready (Socket.io) Features: - First-person controls (WASD + mouse) - Jump and run mechanics - Chat system - Real-time HUD - Loading screen - Responsive design Built with Vite for fast builds and hot reload. 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
50 lines
767 B
JavaScript
50 lines
767 B
JavaScript
import { SampledTexture } from '../SampledTexture.js';
|
|
|
|
class NodeSampledTexture extends SampledTexture {
|
|
|
|
constructor( name, textureNode ) {
|
|
|
|
super( name, textureNode ? textureNode.value : null );
|
|
|
|
this.textureNode = textureNode;
|
|
|
|
}
|
|
|
|
get needsBindingsUpdate() {
|
|
|
|
return this.textureNode.value !== this.texture || super.needsBindingsUpdate;
|
|
|
|
}
|
|
|
|
update() {
|
|
|
|
const { textureNode } = this;
|
|
|
|
if ( this.texture !== textureNode.value ) {
|
|
|
|
this.texture = textureNode.value;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return super.update();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class NodeSampledCubeTexture extends NodeSampledTexture {
|
|
|
|
constructor( name, textureNode ) {
|
|
|
|
super( name, textureNode );
|
|
|
|
this.isSampledCubeTexture = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export { NodeSampledTexture, NodeSampledCubeTexture };
|