Commit a20ba050 authored by Chunchi Che's avatar Chunchi Che

add extraDeck.tsx

parent ac068254
Pipeline #19774 passed with stages
in 4 minutes and 21 seconds
...@@ -4,13 +4,6 @@ import { useAppSelector } from "../../hook"; ...@@ -4,13 +4,6 @@ import { useAppSelector } from "../../hook";
import { selectMeDeck, selectOpDeck } from "../../reducers/duel/deckSlice"; import { selectMeDeck, selectOpDeck } from "../../reducers/duel/deckSlice";
import SingleSlot, { Depth } from "./singleSlot"; import SingleSlot, { Depth } from "./singleSlot";
const Deck = () => (
<>
<CommonDeck />
<ExtraDeck />
</>
);
const CommonDeck = () => { const CommonDeck = () => {
const meDeck = useAppSelector(selectMeDeck).inner; const meDeck = useAppSelector(selectMeDeck).inner;
const opDeck = useAppSelector(selectOpDeck).inner; const opDeck = useAppSelector(selectOpDeck).inner;
...@@ -31,32 +24,6 @@ const CommonDeck = () => { ...@@ -31,32 +24,6 @@ const CommonDeck = () => {
); );
}; };
const ExtraDeck = () => {
const shape = CONFIG.ExtraDeckSlotShape();
const position = new BABYLON.Vector3(
-3.3,
shape.depth / 2 + CONFIG.Floating,
-3.3
);
const rotation = CONFIG.DeckSlotRotation();
return (
<box
name="extra-deck"
width={shape.width}
height={shape.height}
depth={shape.depth}
position={position}
rotation={rotation}
>
<standardMaterial
name="extra-deck-mat"
diffuseColor={CONFIG.ExtraDeckColor()}
/>
</box>
);
};
const deckPosition = (player: number, deckLength: number) => { const deckPosition = (player: number, deckLength: number) => {
const x = player == 0 ? 3.2 : -3.2; const x = player == 0 ? 3.2 : -3.2;
const y = (Depth * deckLength) / 2 + CONFIG.Floating; const y = (Depth * deckLength) / 2 + CONFIG.Floating;
...@@ -65,4 +32,4 @@ const deckPosition = (player: number, deckLength: number) => { ...@@ -65,4 +32,4 @@ const deckPosition = (player: number, deckLength: number) => {
return new BABYLON.Vector3(x, y, z); return new BABYLON.Vector3(x, y, z);
}; };
export default Deck; export default CommonDeck;
import SingleSlot, { Depth } from "./singleSlot";
import * as BABYLON from "@babylonjs/core";
import * as CONFIG from "../../config/ui";
import { useAppSelector } from "../../hook";
import {
selectMeExtraDeck,
selectOpExtraDeck,
} from "../../reducers/duel/extraDeckSlice";
const ExtraDeck = () => {
const meExtraDeck = useAppSelector(selectMeExtraDeck).inner;
const opExtraDeck = useAppSelector(selectOpExtraDeck).inner;
return (
<>
<SingleSlot
state={meExtraDeck}
position={extraDeckPosition(0, meExtraDeck.length)}
rotation={CONFIG.CardSlotRotation(false)}
/>
<SingleSlot
state={opExtraDeck}
position={extraDeckPosition(1, opExtraDeck.length)}
rotation={CONFIG.CardSlotRotation(true)}
/>
</>
);
};
const extraDeckPosition = (player: number, deckLength: number) => {
const x = player == 0 ? -3.3 : 3.3;
const y = (Depth & deckLength) / 2 + CONFIG.Floating;
const z = player == 0 ? -3.3 : 3.3;
return new BABYLON.Vector3(x, y, z);
};
export default ExtraDeck;
...@@ -9,7 +9,7 @@ import CardModal from "./cardModal"; ...@@ -9,7 +9,7 @@ import CardModal from "./cardModal";
import HintNotification from "./hintNotification"; import HintNotification from "./hintNotification";
import Magics from "./magics"; import Magics from "./magics";
import Field from "./field"; import Field from "./field";
import Deck from "./deck"; import CommonDeck from "./deck";
import Exclusion from "./exclusion"; import Exclusion from "./exclusion";
import Cemeteries from "./cemetery"; import Cemeteries from "./cemetery";
import CardListModal from "./cardListModal"; import CardListModal from "./cardListModal";
...@@ -19,6 +19,7 @@ import PositionModal from "./positionModal"; ...@@ -19,6 +19,7 @@ import PositionModal from "./positionModal";
import OptionModal from "./optionModal"; import OptionModal from "./optionModal";
import Phase from "./phase"; import Phase from "./phase";
import CheckCardModalV2 from "./checkCardModalV2"; import CheckCardModalV2 from "./checkCardModalV2";
import ExtraDeck from "./extraDeck";
// Ref: https://github.com/brianzinn/react-babylonjs/issues/126 // Ref: https://github.com/brianzinn/react-babylonjs/issues/126
const NeosDuel = () => ( const NeosDuel = () => (
...@@ -34,7 +35,8 @@ const NeosDuel = () => ( ...@@ -34,7 +35,8 @@ const NeosDuel = () => (
<Monsters /> <Monsters />
<Magics /> <Magics />
<Field /> <Field />
<Deck /> <CommonDeck />
<ExtraDeck />
<Cemeteries /> <Cemeteries />
<Exclusion /> <Exclusion />
<Field /> <Field />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment