- Enable renderingGroupId=3 for missionBrief and statusScreen (always on top) - Adjust background stars: increase count to 4500, radius to 50000 - Add level editor Svelte components (AsteroidList, BaseConfig, LevelConfig, PlanetList, ShipConfig, Vector3Input editors) - Add LEVEL_TRANSITION.md documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
66 lines
1.4 KiB
Svelte
66 lines
1.4 KiB
Svelte
<script lang="ts">
|
|
export let label: string = '';
|
|
export let value: [number, number, number] = [0, 0, 0];
|
|
export let step: number = 1;
|
|
|
|
// Ensure value is always a valid array
|
|
$: if (!value || value.length !== 3) {
|
|
value = [0, 0, 0];
|
|
}
|
|
</script>
|
|
|
|
<div class="vector3-input">
|
|
{#if label}
|
|
<label class="vector3-label">{label}</label>
|
|
{/if}
|
|
<div class="vector3-fields">
|
|
<div class="vector3-field">
|
|
<span class="axis-label">X</span>
|
|
<input type="number" bind:value={value[0]} {step} class="settings-input" />
|
|
</div>
|
|
<div class="vector3-field">
|
|
<span class="axis-label">Y</span>
|
|
<input type="number" bind:value={value[1]} {step} class="settings-input" />
|
|
</div>
|
|
<div class="vector3-field">
|
|
<span class="axis-label">Z</span>
|
|
<input type="number" bind:value={value[2]} {step} class="settings-input" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
.vector3-input {
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.vector3-label {
|
|
display: block;
|
|
margin-bottom: 0.5rem;
|
|
font-weight: 500;
|
|
color: var(--color-text-primary, #fff);
|
|
}
|
|
|
|
.vector3-fields {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.vector3-field {
|
|
flex: 1;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.25rem;
|
|
}
|
|
|
|
.axis-label {
|
|
font-size: 0.8rem;
|
|
color: var(--color-text-secondary, #aaa);
|
|
min-width: 1rem;
|
|
}
|
|
|
|
.vector3-field input {
|
|
width: 100%;
|
|
}
|
|
</style>
|