mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 20:19:49 +02:00
feat: spaced armor toggle
This commit is contained in:
1 parent
9218eb09d6
commit
92c81d60db
3 files changed
+33
-3
No files matched your search
@@ -37,6 +37,7 @@ export function TankDisplay() {
|
|||||||
const mode = useTankopedia((state) => state.mode);
|
const mode = useTankopedia((state) => state.mode);
|
||||||
const showGrid = useTankopedia((state) => state.model.showGrid);
|
const showGrid = useTankopedia((state) => state.model.showGrid);
|
||||||
const opaqueArmor = useTankopedia((state) => state.model.opaqueArmor);
|
const opaqueArmor = useTankopedia((state) => state.model.opaqueArmor);
|
||||||
|
const showSpacedArmor = useTankopedia((state) => state.model.showSpacedArmor);
|
||||||
const protagonist = useTankopedia((state) => {
|
const protagonist = useTankopedia((state) => {
|
||||||
if (!state.areTanksAssigned) return;
|
if (!state.areTanksAssigned) return;
|
||||||
return state.protagonist;
|
return state.protagonist;
|
||||||
@@ -188,6 +189,17 @@ export function TankDisplay() {
|
|||||||
>
|
>
|
||||||
Opaque armor
|
Opaque armor
|
||||||
</DropdownMenu.CheckboxItem>
|
</DropdownMenu.CheckboxItem>
|
||||||
|
|
||||||
|
<DropdownMenu.CheckboxItem
|
||||||
|
checked={showSpacedArmor}
|
||||||
|
onCheckedChange={(checked) => {
|
||||||
|
mutateTankopedia((draft) => {
|
||||||
|
draft.model.showSpacedArmor = checked;
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Spaced armor
|
||||||
|
</DropdownMenu.CheckboxItem>
|
||||||
</DropdownMenu.Content>
|
</DropdownMenu.Content>
|
||||||
</DropdownMenu.Root>
|
</DropdownMenu.Root>
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ export function TankArmor({ ...props }: TankArmorProps) {
|
|||||||
if (!state.areTanksAssigned) return;
|
if (!state.areTanksAssigned) return;
|
||||||
return state.antagonist;
|
return state.antagonist;
|
||||||
});
|
});
|
||||||
|
const showSpacedArmor = useTankopedia((state) => state.model.showSpacedArmor);
|
||||||
|
|
||||||
if (!protagonist || !antagonist) return null;
|
if (!protagonist || !antagonist) return null;
|
||||||
|
|
||||||
@@ -93,7 +94,12 @@ export function TankArmor({ ...props }: TankArmorProps) {
|
|||||||
const thickness = tankModelDefinition.armor.thickness[armorId];
|
const thickness = tankModelDefinition.armor.thickness[armorId];
|
||||||
const isSpaced = tankModelDefinition.armor.spaced?.includes(armorId);
|
const isSpaced = tankModelDefinition.armor.spaced?.includes(armorId);
|
||||||
|
|
||||||
if (!isVisible || thickness === undefined) return null;
|
if (
|
||||||
|
!isVisible ||
|
||||||
|
thickness === undefined ||
|
||||||
|
(isSpaced && !showSpacedArmor)
|
||||||
|
)
|
||||||
|
return null;
|
||||||
return (
|
return (
|
||||||
<ArmorMesh
|
<ArmorMesh
|
||||||
spaced={isSpaced}
|
spaced={isSpaced}
|
||||||
@@ -121,7 +127,12 @@ export function TankArmor({ ...props }: TankArmorProps) {
|
|||||||
const isSpaced =
|
const isSpaced =
|
||||||
turretModelDefinition.armor.spaced?.includes(armorId);
|
turretModelDefinition.armor.spaced?.includes(armorId);
|
||||||
|
|
||||||
if (!isVisible || thickness === undefined) return null;
|
if (
|
||||||
|
!isVisible ||
|
||||||
|
thickness === undefined ||
|
||||||
|
(isSpaced && !showSpacedArmor)
|
||||||
|
)
|
||||||
|
return null;
|
||||||
return (
|
return (
|
||||||
<ArmorMesh
|
<ArmorMesh
|
||||||
spaced={isSpaced}
|
spaced={isSpaced}
|
||||||
@@ -156,7 +167,12 @@ export function TankArmor({ ...props }: TankArmorProps) {
|
|||||||
const isSpaced =
|
const isSpaced =
|
||||||
gunModelDefinition.armor.spaced?.includes(armorId);
|
gunModelDefinition.armor.spaced?.includes(armorId);
|
||||||
|
|
||||||
if (!isVisible || thickness === undefined) return null;
|
if (
|
||||||
|
!isVisible ||
|
||||||
|
thickness === undefined ||
|
||||||
|
(isSpaced && !showSpacedArmor)
|
||||||
|
)
|
||||||
|
return null;
|
||||||
return (
|
return (
|
||||||
<ArmorMesh
|
<ArmorMesh
|
||||||
spaced={isSpaced}
|
spaced={isSpaced}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ type Tankopedia = {
|
|||||||
controlsEnabled: boolean;
|
controlsEnabled: boolean;
|
||||||
showGrid: boolean;
|
showGrid: boolean;
|
||||||
opaqueArmor: boolean;
|
opaqueArmor: boolean;
|
||||||
|
showSpacedArmor: boolean;
|
||||||
};
|
};
|
||||||
mode: TankopediaMode;
|
mode: TankopediaMode;
|
||||||
} & (
|
} & (
|
||||||
@@ -72,6 +73,7 @@ export const useTankopedia = create<Tankopedia>()(() => ({
|
|||||||
controlsEnabled: true,
|
controlsEnabled: true,
|
||||||
showGrid: true,
|
showGrid: true,
|
||||||
opaqueArmor: false,
|
opaqueArmor: false,
|
||||||
|
showSpacedArmor: true,
|
||||||
},
|
},
|
||||||
areTanksAssigned: false,
|
areTanksAssigned: false,
|
||||||
mode: 'model',
|
mode: 'model',
|
||||||
|
|||||||
Reference in new issue
Block a user