Commit fe42fcbf authored by timel's avatar timel

refactor: 组件 默认导出 -> 具名导出

parent db603083
...@@ -2,33 +2,37 @@ import React from "react"; ...@@ -2,33 +2,37 @@ import React from "react";
import { Engine, Scene } from "react-babylonjs"; import { Engine, Scene } from "react-babylonjs";
import { ReactReduxContext, Provider } from "react-redux"; import { ReactReduxContext, Provider } from "react-redux";
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import Hands from "./PlayMat/Hands"; import {
import Monsters from "./PlayMat/Monsters"; Hands,
import CardModal from "./Message/CardModal"; Monsters,
import HintNotification from "./Message/HintNotification"; Magics,
import Magics from "./PlayMat/Magics"; Field,
import Field from "./PlayMat/Field"; Graveyard,
import CommonDeck from "./PlayMat/Deck"; ExtraDeck,
import Exclusion from "./PlayMat/BanishedZone"; } from "./PlayMat";
import Graveyard from "./PlayMat/Graveyard"; import {
import CardListModal from "./Message/CardListModal"; CardModal,
import CheckCardModal from "./Message/CheckCardModal"; HintNotification,
import YesNoModal from "./Message/YesNoModal"; CardListModal,
import PositionModal from "./Message/PositionModal"; CheckCardModal,
import OptionModal from "./Message/OptionModal"; YesNoModal,
import Phase from "./Message/Phase"; PositionModal,
import CheckCardModalV2 from "./Message/CheckCardModalV2"; OptionModal,
import ExtraDeck from "./PlayMat/ExtraDeck"; Phase,
CheckCardModalV2,
DuelTimeLine,
SendBox,
PlayerStatus,
Alert,
CheckCardModalV3,
CheckCounterModal,
SortCardModal,
} from "./Message";
import { CommonDeck } from "./PlayMat/Deck";
import { BanishedZone } from "./PlayMat/BanishedZone";
import NeosLayout from "./Layout"; import NeosLayout from "./Layout";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import DuelTimeLine from "./Message/TimeLine";
import { Row } from "antd"; import { Row } from "antd";
import SendBox from "./Message/SendBox";
import PlayerStatus from "./Message/Status";
import Alert from "./Message/Alert";
import CheckCardModalV3 from "./Message/CheckCardModalV3";
import CheckCounterModal from "./Message/CheckCounterModal";
import SortCardModal from "./Message/SortCardModal";
// Ref: https://github.com/brianzinn/react-babylonjs/issues/126 // Ref: https://github.com/brianzinn/react-babylonjs/issues/126
const NeosDuel = () => { const NeosDuel = () => {
...@@ -82,7 +86,7 @@ const NeosCanvas = () => ( ...@@ -82,7 +86,7 @@ const NeosCanvas = () => (
<CommonDeck /> <CommonDeck />
<ExtraDeck /> <ExtraDeck />
<Graveyard /> <Graveyard />
<Exclusion /> <BanishedZone />
<Field /> <Field />
<Ground /> <Ground />
</Provider> </Provider>
......
...@@ -3,16 +3,16 @@ import { useNavigate } from "react-router-dom"; ...@@ -3,16 +3,16 @@ import { useNavigate } from "react-router-dom";
import { sendSurrender } from "@/api/ocgcore/ocgHelper"; import { sendSurrender } from "@/api/ocgcore/ocgHelper";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { selectUnimplemented } from "@/reducers/duel/mod"; import { selectUnimplemented } from "@/reducers/duel/mod";
import { Alert } from "antd"; import { Alert as AntdAlert } from "antd";
const NeosAlert = () => { export const Alert = () => {
const unimplemented = useAppSelector(selectUnimplemented); const unimplemented = useAppSelector(selectUnimplemented);
const navigate = useNavigate(); const navigate = useNavigate();
return ( return (
<> <>
{unimplemented ? ( {unimplemented ? (
<Alert <AntdAlert
message={`Unimplemented message with code=${unimplemented}`} message={`Unimplemented message with code=${unimplemented}`}
description="It seems that there's something unimplemented by Neos. Sincerely apologize for that. Contact use to fix this issue: <ccc@neos.moe>" description="It seems that there's something unimplemented by Neos. Sincerely apologize for that. Contact use to fix this issue: <ccc@neos.moe>"
showIcon showIcon
...@@ -31,5 +31,3 @@ const NeosAlert = () => { ...@@ -31,5 +31,3 @@ const NeosAlert = () => {
</> </>
); );
}; };
export default NeosAlert;
...@@ -15,7 +15,7 @@ import NeosConfig from "../../../../neos.config.json"; ...@@ -15,7 +15,7 @@ import NeosConfig from "../../../../neos.config.json";
const CARD_WIDTH = 100; const CARD_WIDTH = 100;
const CardListModal = () => { export const CardListModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectCardListModalIsOpen); const isOpen = useAppSelector(selectCardListModalIsOpen);
const list = useAppSelector(selectCardListModalInfo); const list = useAppSelector(selectCardListModalInfo);
...@@ -62,5 +62,3 @@ const CardListModal = () => { ...@@ -62,5 +62,3 @@ const CardListModal = () => {
</Drawer> </Drawer>
); );
}; };
export default CardListModal;
...@@ -28,7 +28,7 @@ import { fetchStrings } from "@/api/strings"; ...@@ -28,7 +28,7 @@ import { fetchStrings } from "@/api/strings";
const { Meta } = Card; const { Meta } = Card;
const CARD_WIDTH = 240; const CARD_WIDTH = 240;
const CardModal = () => { export const CardModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectCardModalIsOpen); const isOpen = useAppSelector(selectCardModalIsOpen);
const meta = useAppSelector(selectCardModalMeta); const meta = useAppSelector(selectCardModalMeta);
...@@ -160,5 +160,3 @@ const CounterLine = (props: { counters: { [type: number]: number } }) => { ...@@ -160,5 +160,3 @@ const CounterLine = (props: { counters: { [type: number]: number } }) => {
<></> <></>
); );
}; };
export default CardModal;
...@@ -21,10 +21,10 @@ import { ...@@ -21,10 +21,10 @@ import {
} from "@/api/ocgcore/ocgHelper"; } from "@/api/ocgcore/ocgHelper";
import { ThunderboltOutlined } from "@ant-design/icons"; import { ThunderboltOutlined } from "@ant-design/icons";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import { selectHint } from "@/reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const CheckCardModal = () => { export const CheckCardModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectCheckCardModalIsOpen); const isOpen = useAppSelector(selectCheckCardModalIsOpen);
const { min, max } = useAppSelector(selectCheckCardModalMinMax); const { min, max } = useAppSelector(selectCheckCardModalMinMax);
...@@ -165,5 +165,3 @@ const HoverCheckCard = (props: CheckCardProps & { hoverContent?: string }) => { ...@@ -165,5 +165,3 @@ const HoverCheckCard = (props: CheckCardProps & { hoverContent?: string }) => {
</> </>
); );
}; };
export default CheckCardModal;
...@@ -19,10 +19,10 @@ import { ...@@ -19,10 +19,10 @@ import {
setCheckCardModalV2ResponseAble, setCheckCardModalV2ResponseAble,
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import { selectHint } from "@/reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const CheckCardModalV2 = () => { export const CheckCardModalV2 = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectCheckCardModalV2IsOpen); const isOpen = useAppSelector(selectCheckCardModalV2IsOpen);
const { min, max } = useAppSelector(selectCheckCardModalV2MinMax); const { min, max } = useAppSelector(selectCheckCardModalV2MinMax);
...@@ -123,5 +123,3 @@ const CheckCardModalV2 = () => { ...@@ -123,5 +123,3 @@ const CheckCardModalV2 = () => {
</DragModal> </DragModal>
); );
}; };
export default CheckCardModalV2;
...@@ -11,10 +11,10 @@ import { ...@@ -11,10 +11,10 @@ import {
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import { selectCheckCardModalV3 } from "@/reducers/duel/modal/checkCardModalV3Slice"; import { selectCheckCardModalV3 } from "@/reducers/duel/modal/checkCardModalV3Slice";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import { selectHint } from "@/reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const CheckCardModalV3 = () => { export const CheckCardModalV3 = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const state = useAppSelector(selectCheckCardModalV3); const state = useAppSelector(selectCheckCardModalV3);
const isOpen = state.isOpen; const isOpen = state.isOpen;
...@@ -119,5 +119,3 @@ const CheckCardModalV3 = () => { ...@@ -119,5 +119,3 @@ const CheckCardModalV3 = () => {
</DragModal> </DragModal>
); );
}; };
export default CheckCardModalV3;
...@@ -6,10 +6,10 @@ import { useAppSelector } from "@/hook"; ...@@ -6,10 +6,10 @@ import { useAppSelector } from "@/hook";
import { clearCheckCounter } from "@/reducers/duel/mod"; import { clearCheckCounter } from "@/reducers/duel/mod";
import { selectCheckCounterModal } from "@/reducers/duel/modal/checkCounterModalSlice"; import { selectCheckCounterModal } from "@/reducers/duel/modal/checkCounterModalSlice";
import { store } from "@/store"; import { store } from "@/store";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
const CheckCounterModal = () => { export const CheckCounterModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const state = useAppSelector(selectCheckCounterModal); const state = useAppSelector(selectCheckCounterModal);
const isOpen = state.isOpen; const isOpen = state.isOpen;
...@@ -69,5 +69,3 @@ const CheckCounterModal = () => { ...@@ -69,5 +69,3 @@ const CheckCounterModal = () => {
</DragModal> </DragModal>
); );
}; };
export default CheckCounterModal;
...@@ -6,7 +6,7 @@ import { Modal, ModalProps } from "antd"; ...@@ -6,7 +6,7 @@ import { Modal, ModalProps } from "antd";
export interface DragModalProps extends ModalProps {} export interface DragModalProps extends ModalProps {}
const DragModal = (props: DragModalProps) => { export const DragModal = (props: DragModalProps) => {
const dragRef = useRef<HTMLDivElement>(null); const dragRef = useRef<HTMLDivElement>(null);
const [bounds, setBounds] = useState({ const [bounds, setBounds] = useState({
left: 0, left: 0,
...@@ -41,5 +41,3 @@ const DragModal = (props: DragModalProps) => { ...@@ -41,5 +41,3 @@ const DragModal = (props: DragModalProps) => {
</Modal> </Modal>
); );
}; };
export default DragModal;
...@@ -9,7 +9,7 @@ import { ygopro } from "@/api/ocgcore/idl/ocgcore"; ...@@ -9,7 +9,7 @@ import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import MsgWin = ygopro.StocGameMessage.MsgWin; import MsgWin = ygopro.StocGameMessage.MsgWin;
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
const HintNotification = () => { export const HintNotification = () => {
const hint = useAppSelector(selectHint); const hint = useAppSelector(selectHint);
const currentPhase = useAppSelector(selectCurrentPhase); const currentPhase = useAppSelector(selectCurrentPhase);
const waiting = useAppSelector(selectWaiting); const waiting = useAppSelector(selectWaiting);
...@@ -67,5 +67,3 @@ const HintNotification = () => { ...@@ -67,5 +67,3 @@ const HintNotification = () => {
return <>{contextHolder}</>; return <>{contextHolder}</>;
}; };
export default HintNotification;
...@@ -9,9 +9,9 @@ import { ...@@ -9,9 +9,9 @@ import {
} from "@/reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { sendSelectOptionResponse } from "@/api/ocgcore/ocgHelper"; import { sendSelectOptionResponse } from "@/api/ocgcore/ocgHelper";
import { resetOptionModal, setOptionModalIsOpen } from "@/reducers/duel/mod"; import { resetOptionModal, setOptionModalIsOpen } from "@/reducers/duel/mod";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
const OptionModal = () => { export const OptionModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectOptionModalIsOpen); const isOpen = useAppSelector(selectOptionModalIsOpen);
const options = useAppSelector(selectOptionModalOptions); const options = useAppSelector(selectOptionModalOptions);
...@@ -52,5 +52,3 @@ const OptionModal = () => { ...@@ -52,5 +52,3 @@ const OptionModal = () => {
</DragModal> </DragModal>
); );
}; };
export default OptionModal;
...@@ -46,7 +46,7 @@ const PhaseButton = (props: { ...@@ -46,7 +46,7 @@ const PhaseButton = (props: {
); );
}; };
const Phase = () => { export const Phase = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const enableBp = useAppSelector(selectEnableBp); const enableBp = useAppSelector(selectEnableBp);
const enableM2 = useAppSelector(selectEnableM2); const enableM2 = useAppSelector(selectEnableM2);
...@@ -141,5 +141,3 @@ const Phase = () => { ...@@ -141,5 +141,3 @@ const Phase = () => {
</Space> </Space>
); );
}; };
export default Phase;
...@@ -13,9 +13,9 @@ import { ...@@ -13,9 +13,9 @@ import {
setPositionModalIsOpen, setPositionModalIsOpen,
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import { CheckCard } from "@ant-design/pro-components"; import { CheckCard } from "@ant-design/pro-components";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
const PositionModal = () => { export const PositionModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectPositionModalIsOpen); const isOpen = useAppSelector(selectPositionModalIsOpen);
const positions = useAppSelector(selectPositionModalPositions); const positions = useAppSelector(selectPositionModalPositions);
...@@ -82,5 +82,3 @@ function cardPositionToChinese(position: ygopro.CardPosition): string { ...@@ -82,5 +82,3 @@ function cardPositionToChinese(position: ygopro.CardPosition): string {
} }
} }
} }
export default PositionModal;
...@@ -3,7 +3,7 @@ import { Input, Button, Row, Col } from "antd"; ...@@ -3,7 +3,7 @@ import { Input, Button, Row, Col } from "antd";
import { SendOutlined } from "@ant-design/icons"; import { SendOutlined } from "@ant-design/icons";
import { sendChat } from "@/api/ocgcore/ocgHelper"; import { sendChat } from "@/api/ocgcore/ocgHelper";
const SendBox = () => { export const SendBox = () => {
const [content, setContent] = useState(""); const [content, setContent] = useState("");
return ( return (
<> <>
...@@ -32,5 +32,3 @@ const SendBox = () => { ...@@ -32,5 +32,3 @@ const SendBox = () => {
</> </>
); );
}; };
export default SendBox;
...@@ -25,7 +25,7 @@ import { Modal, Button, Card } from "antd"; ...@@ -25,7 +25,7 @@ import { Modal, Button, Card } from "antd";
import { CardMeta } from "@/api/cards"; import { CardMeta } from "@/api/cards";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
const SortCardModal = () => { export const SortCardModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const state = useAppSelector(selectSortCardModal); const state = useAppSelector(selectSortCardModal);
const isOpen = state.isOpen; const isOpen = state.isOpen;
...@@ -111,5 +111,3 @@ const SortableItem = (props: { id: number; meta: CardMeta }) => { ...@@ -111,5 +111,3 @@ const SortableItem = (props: { id: number; meta: CardMeta }) => {
</div> </div>
); );
}; };
export default SortCardModal;
...@@ -15,7 +15,7 @@ const avatarSize = 40; ...@@ -15,7 +15,7 @@ const avatarSize = 40;
const ME_VALUE = "myself"; const ME_VALUE = "myself";
const OP_VALUE = "opponent"; const OP_VALUE = "opponent";
const PlayerStatus = () => { export const PlayerStatus = () => {
const meInfo = useAppSelector(selectMeInitInfo); const meInfo = useAppSelector(selectMeInitInfo);
const opInfo = useAppSelector(selectOpInitInfo); const opInfo = useAppSelector(selectOpInitInfo);
const waiting = useAppSelector(selectWaiting) || false; const waiting = useAppSelector(selectWaiting) || false;
...@@ -61,5 +61,3 @@ const PlayerStatus = () => { ...@@ -61,5 +61,3 @@ const PlayerStatus = () => {
</CheckCard.Group> </CheckCard.Group>
); );
}; };
export default PlayerStatus;
...@@ -4,7 +4,7 @@ import { MessageOutlined } from "@ant-design/icons"; ...@@ -4,7 +4,7 @@ import { MessageOutlined } from "@ant-design/icons";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { selectChat } from "@/reducers/chatSlice"; import { selectChat } from "@/reducers/chatSlice";
const DuelTimeLine = () => { export const DuelTimeLine = () => {
const [items, setItems] = useState<TimelineItemProps[]>([]); const [items, setItems] = useState<TimelineItemProps[]>([]);
const chat = useAppSelector(selectChat); const chat = useAppSelector(selectChat);
...@@ -22,5 +22,3 @@ const DuelTimeLine = () => { ...@@ -22,5 +22,3 @@ const DuelTimeLine = () => {
return <Timeline items={items} />; return <Timeline items={items} />;
}; };
export default DuelTimeLine;
...@@ -8,10 +8,10 @@ import { ...@@ -8,10 +8,10 @@ import {
selectYesNOModalMsg, selectYesNOModalMsg,
} from "@/reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { setYesNoModalIsOpen } from "@/reducers/duel/mod"; import { setYesNoModalIsOpen } from "@/reducers/duel/mod";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import { selectHint } from "@/reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const YesNoModal = () => { export const YesNoModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectYesNoModalIsOpen); const isOpen = useAppSelector(selectYesNoModalIsOpen);
const msg = useAppSelector(selectYesNOModalMsg); const msg = useAppSelector(selectYesNOModalMsg);
...@@ -46,5 +46,3 @@ const YesNoModal = () => { ...@@ -46,5 +46,3 @@ const YesNoModal = () => {
/> />
); );
}; };
export default YesNoModal;
...@@ -3,16 +3,16 @@ import { useNavigate } from "react-router-dom"; ...@@ -3,16 +3,16 @@ import { useNavigate } from "react-router-dom";
import { sendSurrender } from "@/api/ocgcore/ocgHelper"; import { sendSurrender } from "@/api/ocgcore/ocgHelper";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { selectUnimplemented } from "@/reducers/duel/mod"; import { selectUnimplemented } from "@/reducers/duel/mod";
import { Alert } from "antd"; import { Alert as AntdAlert } from "antd";
const NeosAlert = () => { export const Alert = () => {
const unimplemented = useAppSelector(selectUnimplemented); const unimplemented = useAppSelector(selectUnimplemented);
const navigate = useNavigate(); const navigate = useNavigate();
return ( return (
<> <>
{unimplemented ? ( {unimplemented ? (
<Alert <AntdAlert
message={`Unimplemented message with code=${unimplemented}`} message={`Unimplemented message with code=${unimplemented}`}
description="It seems that there's something unimplemented by Neos. Sincerely apologize for that. Contact use to fix this issue: <ccc@neos.moe>" description="It seems that there's something unimplemented by Neos. Sincerely apologize for that. Contact use to fix this issue: <ccc@neos.moe>"
showIcon showIcon
...@@ -31,5 +31,3 @@ const NeosAlert = () => { ...@@ -31,5 +31,3 @@ const NeosAlert = () => {
</> </>
); );
}; };
export default NeosAlert;
...@@ -15,7 +15,7 @@ import NeosConfig from "../../../../neos.config.json"; ...@@ -15,7 +15,7 @@ import NeosConfig from "../../../../neos.config.json";
const CARD_WIDTH = 100; const CARD_WIDTH = 100;
const CardListModal = () => { export const CardListModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectCardListModalIsOpen); const isOpen = useAppSelector(selectCardListModalIsOpen);
const list = useAppSelector(selectCardListModalInfo); const list = useAppSelector(selectCardListModalInfo);
...@@ -62,5 +62,3 @@ const CardListModal = () => { ...@@ -62,5 +62,3 @@ const CardListModal = () => {
</Drawer> </Drawer>
); );
}; };
export default CardListModal;
...@@ -28,7 +28,7 @@ import { fetchStrings } from "@/api/strings"; ...@@ -28,7 +28,7 @@ import { fetchStrings } from "@/api/strings";
const { Meta } = Card; const { Meta } = Card;
const CARD_WIDTH = 240; const CARD_WIDTH = 240;
const CardModal = () => { export const CardModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectCardModalIsOpen); const isOpen = useAppSelector(selectCardModalIsOpen);
const meta = useAppSelector(selectCardModalMeta); const meta = useAppSelector(selectCardModalMeta);
...@@ -160,5 +160,3 @@ const CounterLine = (props: { counters: { [type: number]: number } }) => { ...@@ -160,5 +160,3 @@ const CounterLine = (props: { counters: { [type: number]: number } }) => {
<></> <></>
); );
}; };
export default CardModal;
...@@ -21,10 +21,10 @@ import { ...@@ -21,10 +21,10 @@ import {
} from "@/api/ocgcore/ocgHelper"; } from "@/api/ocgcore/ocgHelper";
import { ThunderboltOutlined } from "@ant-design/icons"; import { ThunderboltOutlined } from "@ant-design/icons";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import { selectHint } from "@/reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const CheckCardModal = () => { export const CheckCardModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectCheckCardModalIsOpen); const isOpen = useAppSelector(selectCheckCardModalIsOpen);
const { min, max } = useAppSelector(selectCheckCardModalMinMax); const { min, max } = useAppSelector(selectCheckCardModalMinMax);
...@@ -165,5 +165,3 @@ const HoverCheckCard = (props: CheckCardProps & { hoverContent?: string }) => { ...@@ -165,5 +165,3 @@ const HoverCheckCard = (props: CheckCardProps & { hoverContent?: string }) => {
</> </>
); );
}; };
export default CheckCardModal;
...@@ -19,10 +19,10 @@ import { ...@@ -19,10 +19,10 @@ import {
setCheckCardModalV2ResponseAble, setCheckCardModalV2ResponseAble,
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import { selectHint } from "@/reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const CheckCardModalV2 = () => { export const CheckCardModalV2 = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectCheckCardModalV2IsOpen); const isOpen = useAppSelector(selectCheckCardModalV2IsOpen);
const { min, max } = useAppSelector(selectCheckCardModalV2MinMax); const { min, max } = useAppSelector(selectCheckCardModalV2MinMax);
...@@ -123,5 +123,3 @@ const CheckCardModalV2 = () => { ...@@ -123,5 +123,3 @@ const CheckCardModalV2 = () => {
</DragModal> </DragModal>
); );
}; };
export default CheckCardModalV2;
...@@ -11,10 +11,10 @@ import { ...@@ -11,10 +11,10 @@ import {
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import { selectCheckCardModalV3 } from "@/reducers/duel/modal/checkCardModalV3Slice"; import { selectCheckCardModalV3 } from "@/reducers/duel/modal/checkCardModalV3Slice";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import { selectHint } from "@/reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const CheckCardModalV3 = () => { export const CheckCardModalV3 = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const state = useAppSelector(selectCheckCardModalV3); const state = useAppSelector(selectCheckCardModalV3);
const isOpen = state.isOpen; const isOpen = state.isOpen;
...@@ -119,5 +119,3 @@ const CheckCardModalV3 = () => { ...@@ -119,5 +119,3 @@ const CheckCardModalV3 = () => {
</DragModal> </DragModal>
); );
}; };
export default CheckCardModalV3;
...@@ -6,10 +6,10 @@ import { useAppSelector } from "@/hook"; ...@@ -6,10 +6,10 @@ import { useAppSelector } from "@/hook";
import { clearCheckCounter } from "@/reducers/duel/mod"; import { clearCheckCounter } from "@/reducers/duel/mod";
import { selectCheckCounterModal } from "@/reducers/duel/modal/checkCounterModalSlice"; import { selectCheckCounterModal } from "@/reducers/duel/modal/checkCounterModalSlice";
import { store } from "@/store"; import { store } from "@/store";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
const CheckCounterModal = () => { export const CheckCounterModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const state = useAppSelector(selectCheckCounterModal); const state = useAppSelector(selectCheckCounterModal);
const isOpen = state.isOpen; const isOpen = state.isOpen;
...@@ -69,5 +69,3 @@ const CheckCounterModal = () => { ...@@ -69,5 +69,3 @@ const CheckCounterModal = () => {
</DragModal> </DragModal>
); );
}; };
export default CheckCounterModal;
...@@ -6,7 +6,7 @@ import { Modal, ModalProps } from "antd"; ...@@ -6,7 +6,7 @@ import { Modal, ModalProps } from "antd";
export interface DragModalProps extends ModalProps {} export interface DragModalProps extends ModalProps {}
const DragModal = (props: DragModalProps) => { export const DragModal = (props: DragModalProps) => {
const dragRef = useRef<HTMLDivElement>(null); const dragRef = useRef<HTMLDivElement>(null);
const [bounds, setBounds] = useState({ const [bounds, setBounds] = useState({
left: 0, left: 0,
...@@ -41,5 +41,3 @@ const DragModal = (props: DragModalProps) => { ...@@ -41,5 +41,3 @@ const DragModal = (props: DragModalProps) => {
</Modal> </Modal>
); );
}; };
export default DragModal;
...@@ -9,7 +9,7 @@ import { ygopro } from "@/api/ocgcore/idl/ocgcore"; ...@@ -9,7 +9,7 @@ import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import MsgWin = ygopro.StocGameMessage.MsgWin; import MsgWin = ygopro.StocGameMessage.MsgWin;
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
const HintNotification = () => { export const HintNotification = () => {
const hint = useAppSelector(selectHint); const hint = useAppSelector(selectHint);
const currentPhase = useAppSelector(selectCurrentPhase); const currentPhase = useAppSelector(selectCurrentPhase);
const waiting = useAppSelector(selectWaiting); const waiting = useAppSelector(selectWaiting);
...@@ -67,5 +67,3 @@ const HintNotification = () => { ...@@ -67,5 +67,3 @@ const HintNotification = () => {
return <>{contextHolder}</>; return <>{contextHolder}</>;
}; };
export default HintNotification;
export * from "./Alert";
export * from "./CardListModal";
export * from "./CardModal";
export * from "./CheckCardModal";
export * from "./CheckCardModalV2";
export * from "./CheckCardModalV3";
export * from "./CheckCounterModal";
export * from "./DragModal";
export * from "./HintNotification";
export * from "./OptionModal";
export * from "./Phase";
export * from "./PositionModal";
export * from "./SendBox";
export * from "./SortCardModal";
export * from "./Status";
export * from "./TimeLine";
export * from "./YesNoModal";
...@@ -9,9 +9,9 @@ import { ...@@ -9,9 +9,9 @@ import {
} from "@/reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { sendSelectOptionResponse } from "@/api/ocgcore/ocgHelper"; import { sendSelectOptionResponse } from "@/api/ocgcore/ocgHelper";
import { resetOptionModal, setOptionModalIsOpen } from "@/reducers/duel/mod"; import { resetOptionModal, setOptionModalIsOpen } from "@/reducers/duel/mod";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
const OptionModal = () => { export const OptionModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectOptionModalIsOpen); const isOpen = useAppSelector(selectOptionModalIsOpen);
const options = useAppSelector(selectOptionModalOptions); const options = useAppSelector(selectOptionModalOptions);
...@@ -52,5 +52,3 @@ const OptionModal = () => { ...@@ -52,5 +52,3 @@ const OptionModal = () => {
</DragModal> </DragModal>
); );
}; };
export default OptionModal;
...@@ -46,7 +46,7 @@ const PhaseButton = (props: { ...@@ -46,7 +46,7 @@ const PhaseButton = (props: {
); );
}; };
const Phase = () => { export const Phase = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const enableBp = useAppSelector(selectEnableBp); const enableBp = useAppSelector(selectEnableBp);
const enableM2 = useAppSelector(selectEnableM2); const enableM2 = useAppSelector(selectEnableM2);
...@@ -141,5 +141,3 @@ const Phase = () => { ...@@ -141,5 +141,3 @@ const Phase = () => {
</Space> </Space>
); );
}; };
export default Phase;
...@@ -13,9 +13,9 @@ import { ...@@ -13,9 +13,9 @@ import {
setPositionModalIsOpen, setPositionModalIsOpen,
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import { CheckCard } from "@ant-design/pro-components"; import { CheckCard } from "@ant-design/pro-components";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
const PositionModal = () => { export const PositionModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectPositionModalIsOpen); const isOpen = useAppSelector(selectPositionModalIsOpen);
const positions = useAppSelector(selectPositionModalPositions); const positions = useAppSelector(selectPositionModalPositions);
...@@ -82,5 +82,3 @@ function cardPositionToChinese(position: ygopro.CardPosition): string { ...@@ -82,5 +82,3 @@ function cardPositionToChinese(position: ygopro.CardPosition): string {
} }
} }
} }
export default PositionModal;
...@@ -3,7 +3,7 @@ import { Input, Button, Row, Col } from "antd"; ...@@ -3,7 +3,7 @@ import { Input, Button, Row, Col } from "antd";
import { SendOutlined } from "@ant-design/icons"; import { SendOutlined } from "@ant-design/icons";
import { sendChat } from "@/api/ocgcore/ocgHelper"; import { sendChat } from "@/api/ocgcore/ocgHelper";
const SendBox = () => { export const SendBox = () => {
const [content, setContent] = useState(""); const [content, setContent] = useState("");
return ( return (
<> <>
...@@ -32,5 +32,3 @@ const SendBox = () => { ...@@ -32,5 +32,3 @@ const SendBox = () => {
</> </>
); );
}; };
export default SendBox;
...@@ -25,7 +25,7 @@ import { Modal, Button, Card } from "antd"; ...@@ -25,7 +25,7 @@ import { Modal, Button, Card } from "antd";
import { CardMeta } from "@/api/cards"; import { CardMeta } from "@/api/cards";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
const SortCardModal = () => { export const SortCardModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const state = useAppSelector(selectSortCardModal); const state = useAppSelector(selectSortCardModal);
const isOpen = state.isOpen; const isOpen = state.isOpen;
...@@ -111,5 +111,3 @@ const SortableItem = (props: { id: number; meta: CardMeta }) => { ...@@ -111,5 +111,3 @@ const SortableItem = (props: { id: number; meta: CardMeta }) => {
</div> </div>
); );
}; };
export default SortCardModal;
...@@ -15,7 +15,7 @@ const avatarSize = 40; ...@@ -15,7 +15,7 @@ const avatarSize = 40;
const ME_VALUE = "myself"; const ME_VALUE = "myself";
const OP_VALUE = "opponent"; const OP_VALUE = "opponent";
const PlayerStatus = () => { export const PlayerStatus = () => {
const meInfo = useAppSelector(selectMeInitInfo); const meInfo = useAppSelector(selectMeInitInfo);
const opInfo = useAppSelector(selectOpInitInfo); const opInfo = useAppSelector(selectOpInitInfo);
const waiting = useAppSelector(selectWaiting) || false; const waiting = useAppSelector(selectWaiting) || false;
...@@ -61,5 +61,3 @@ const PlayerStatus = () => { ...@@ -61,5 +61,3 @@ const PlayerStatus = () => {
</CheckCard.Group> </CheckCard.Group>
); );
}; };
export default PlayerStatus;
...@@ -4,7 +4,7 @@ import { MessageOutlined } from "@ant-design/icons"; ...@@ -4,7 +4,7 @@ import { MessageOutlined } from "@ant-design/icons";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { selectChat } from "@/reducers/chatSlice"; import { selectChat } from "@/reducers/chatSlice";
const DuelTimeLine = () => { export const DuelTimeLine = () => {
const [items, setItems] = useState<TimelineItemProps[]>([]); const [items, setItems] = useState<TimelineItemProps[]>([]);
const chat = useAppSelector(selectChat); const chat = useAppSelector(selectChat);
...@@ -22,5 +22,3 @@ const DuelTimeLine = () => { ...@@ -22,5 +22,3 @@ const DuelTimeLine = () => {
return <Timeline items={items} />; return <Timeline items={items} />;
}; };
export default DuelTimeLine;
...@@ -8,10 +8,10 @@ import { ...@@ -8,10 +8,10 @@ import {
selectYesNOModalMsg, selectYesNOModalMsg,
} from "@/reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { setYesNoModalIsOpen } from "@/reducers/duel/mod"; import { setYesNoModalIsOpen } from "@/reducers/duel/mod";
import DragModal from "./DragModal"; import { DragModal } from "./DragModal";
import { selectHint } from "@/reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const YesNoModal = () => { export const YesNoModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
const isOpen = useAppSelector(selectYesNoModalIsOpen); const isOpen = useAppSelector(selectYesNoModalIsOpen);
const msg = useAppSelector(selectYesNOModalMsg); const msg = useAppSelector(selectYesNOModalMsg);
...@@ -46,5 +46,3 @@ const YesNoModal = () => { ...@@ -46,5 +46,3 @@ const YesNoModal = () => {
/> />
); );
}; };
export default YesNoModal;
...@@ -4,11 +4,11 @@ import { ...@@ -4,11 +4,11 @@ import {
selectMeExclusion, selectMeExclusion,
selectopExclusion, selectopExclusion,
} from "@/reducers/duel/exclusionSlice"; } from "@/reducers/duel/exclusionSlice";
import SingleSlot, { Depth } from "./SingleSlot"; import { SingleSlot, Depth } from "./SingleSlot";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import { cardSlotRotation } from "../utils"; import { cardSlotRotation } from "../utils";
const Exclusion = () => { export const BanishedZone = () => {
const meExclusion = useAppSelector(selectMeExclusion).inner; const meExclusion = useAppSelector(selectMeExclusion).inner;
const opExclusion = useAppSelector(selectopExclusion).inner; const opExclusion = useAppSelector(selectopExclusion).inner;
...@@ -16,24 +16,22 @@ const Exclusion = () => { ...@@ -16,24 +16,22 @@ const Exclusion = () => {
<> <>
<SingleSlot <SingleSlot
state={meExclusion} state={meExclusion}
position={exclusionPosition(0, meExclusion.length)} position={banishedZonePosition(0, meExclusion.length)}
rotation={cardSlotRotation(false)} rotation={cardSlotRotation(false)}
/> />
<SingleSlot <SingleSlot
state={opExclusion} state={opExclusion}
position={exclusionPosition(1, opExclusion.length)} position={banishedZonePosition(1, opExclusion.length)}
rotation={cardSlotRotation(true)} rotation={cardSlotRotation(true)}
/> />
</> </>
); );
}; };
const exclusionPosition = (player: number, exclusionLength: number) => { const banishedZonePosition = (player: number, exclusionLength: number) => {
const x = player == 0 ? 3.2 : -3.2; const x = player == 0 ? 3.2 : -3.2;
const y = (Depth * exclusionLength) / 2 + NeosConfig.ui.card.floating; const y = (Depth * exclusionLength) / 2 + NeosConfig.ui.card.floating;
const z = player == 0 ? -0.7 : 0.7; const z = player == 0 ? -0.7 : 0.7;
return new BABYLON.Vector3(x, y, z); return new BABYLON.Vector3(x, y, z);
}; };
export default Exclusion;
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "@/hook"; 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";
import { cardSlotRotation } from "../utils"; import { cardSlotRotation } from "../utils";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
const CommonDeck = () => { export const CommonDeck = () => {
const meDeck = useAppSelector(selectMeDeck).inner; const meDeck = useAppSelector(selectMeDeck).inner;
const opDeck = useAppSelector(selectOpDeck).inner; const opDeck = useAppSelector(selectOpDeck).inner;
...@@ -32,5 +32,3 @@ const deckPosition = (player: number, deckLength: number) => { ...@@ -32,5 +32,3 @@ const deckPosition = (player: number, deckLength: number) => {
return new BABYLON.Vector3(x, y, z); return new BABYLON.Vector3(x, y, z);
}; };
export default CommonDeck;
import SingleSlot, { Depth } from "./SingleSlot"; import { SingleSlot, Depth } from "./SingleSlot";
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { import {
...@@ -8,7 +8,7 @@ import { ...@@ -8,7 +8,7 @@ import {
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import { cardSlotRotation } from "../utils"; import { cardSlotRotation } from "../utils";
const ExtraDeck = () => { export const ExtraDeck = () => {
const meExtraDeck = useAppSelector(selectMeExtraDeck).inner; const meExtraDeck = useAppSelector(selectMeExtraDeck).inner;
const opExtraDeck = useAppSelector(selectOpExtraDeck).inner; const opExtraDeck = useAppSelector(selectOpExtraDeck).inner;
...@@ -35,5 +35,3 @@ const extraDeckPosition = (player: number, deckLength: number) => { ...@@ -35,5 +35,3 @@ const extraDeckPosition = (player: number, deckLength: number) => {
return new BABYLON.Vector3(x, y, z); return new BABYLON.Vector3(x, y, z);
}; };
export default ExtraDeck;
...@@ -2,12 +2,12 @@ import * as BABYLON from "@babylonjs/core"; ...@@ -2,12 +2,12 @@ import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice"; import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice";
import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod"; import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod";
import FixedSlot from "./FixedSlot"; import { FixedSlot } from "./FixedSlot";
import { Depth } from "./SingleSlot"; import { Depth } from "./SingleSlot";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import { cardSlotRotation } from "../utils"; import { cardSlotRotation } from "../utils";
const Field = () => { export const Field = () => {
const meField = useAppSelector(selectMeMagics).inner.find( const meField = useAppSelector(selectMeMagics).inner.find(
(_, sequence) => sequence == 5 (_, sequence) => sequence == 5
); );
...@@ -50,5 +50,3 @@ const fieldPosition = (player: number) => { ...@@ -50,5 +50,3 @@ const fieldPosition = (player: number) => {
return new BABYLON.Vector3(x, y, z); return new BABYLON.Vector3(x, y, z);
}; };
export default Field;
...@@ -25,7 +25,7 @@ const cardDefenceRotation = new BABYLON.Vector3( ...@@ -25,7 +25,7 @@ const cardDefenceRotation = new BABYLON.Vector3(
defenceRotation.z defenceRotation.z
); );
const FixedSlot = (props: { export const FixedSlot = (props: {
state: CardState; state: CardState;
sequence: number; sequence: number;
position: BABYLON.Vector3; position: BABYLON.Vector3;
...@@ -128,5 +128,3 @@ const FixedSlot = (props: { ...@@ -128,5 +128,3 @@ const FixedSlot = (props: {
</plane> </plane>
); );
}; };
export default FixedSlot;
...@@ -4,11 +4,11 @@ import { ...@@ -4,11 +4,11 @@ import {
selectOpCemetery, selectOpCemetery,
} from "@/reducers/duel/cemeretySlice"; } from "@/reducers/duel/cemeretySlice";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import SingleSlot, { Depth } from "./SingleSlot"; import { SingleSlot, Depth } from "./SingleSlot";
import { cardSlotRotation } from "../utils"; import { cardSlotRotation } from "../utils";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
const Graveyard = () => { export const Graveyard = () => {
const meCemetery = useAppSelector(selectMeCemetery).inner; const meCemetery = useAppSelector(selectMeCemetery).inner;
const opCemetery = useAppSelector(selectOpCemetery).inner; const opCemetery = useAppSelector(selectOpCemetery).inner;
...@@ -35,5 +35,3 @@ const cemeteryPosition = (player: number, cemeteryLength: number) => { ...@@ -35,5 +35,3 @@ const cemeteryPosition = (player: number, cemeteryLength: number) => {
return new BABYLON.Vector3(x, y, z); return new BABYLON.Vector3(x, y, z);
}; };
export default Graveyard;
...@@ -21,7 +21,7 @@ const rotation = NeosConfig.ui.card.handRotation; ...@@ -21,7 +21,7 @@ const rotation = NeosConfig.ui.card.handRotation;
const handRotation = new BABYLON.Vector3(rotation.x, rotation.y, rotation.z); const handRotation = new BABYLON.Vector3(rotation.x, rotation.y, rotation.z);
const hoverScaling = NeosConfig.ui.card.handHoverScaling; const hoverScaling = NeosConfig.ui.card.handHoverScaling;
const Hands = () => { export const Hands = () => {
const meHands = useAppSelector(selectMeHands).inner; const meHands = useAppSelector(selectMeHands).inner;
const meHandPositions = handPositons(0, meHands); const meHandPositions = handPositons(0, meHands);
const opHands = useAppSelector(selectOpHands).inner; const opHands = useAppSelector(selectOpHands).inner;
...@@ -168,5 +168,3 @@ const handPositons = (player: number, hands: CardState[]) => { ...@@ -168,5 +168,3 @@ const handPositons = (player: number, hands: CardState[]) => {
return hands.map((_, idx) => new BABYLON.Vector3(x(idx), y, z)); return hands.map((_, idx) => new BABYLON.Vector3(x(idx), y, z));
}; };
export default Hands;
...@@ -3,7 +3,7 @@ import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice"; ...@@ -3,7 +3,7 @@ import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice";
import { CardState } from "@/reducers/duel/generic"; import { CardState } from "@/reducers/duel/generic";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { zip, cardSlotRotation } from "../utils"; import { zip, cardSlotRotation } from "../utils";
import FixedSlot from "./FixedSlot"; import { FixedSlot } from "./FixedSlot";
import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod"; import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
...@@ -12,7 +12,7 @@ const left = -2.15; ...@@ -12,7 +12,7 @@ const left = -2.15;
const gap = 1.05; const gap = 1.05;
const transform = NeosConfig.ui.card.transform; const transform = NeosConfig.ui.card.transform;
const Magics = () => { export const Magics = () => {
const meMagics = useAppSelector(selectMeMagics).inner; const meMagics = useAppSelector(selectMeMagics).inner;
const meMagicPositions = magicPositions(0, meMagics); const meMagicPositions = magicPositions(0, meMagics);
const opMagics = useAppSelector(selectOpMagics).inner; const opMagics = useAppSelector(selectOpMagics).inner;
...@@ -60,5 +60,3 @@ const magicPositions = (player: number, magics: CardState[]) => { ...@@ -60,5 +60,3 @@ const magicPositions = (player: number, magics: CardState[]) => {
return magics.map((_, sequence) => new BABYLON.Vector3(x(sequence), y, z)); return magics.map((_, sequence) => new BABYLON.Vector3(x(sequence), y, z));
}; };
export default Magics;
...@@ -7,7 +7,7 @@ import { ...@@ -7,7 +7,7 @@ import {
selectOpMonsters, selectOpMonsters,
} from "@/reducers/duel/monstersSlice"; } from "@/reducers/duel/monstersSlice";
import { zip, cardSlotRotation, cardSlotDefenceRotation } from "../utils"; import { zip, cardSlotRotation, cardSlotDefenceRotation } from "../utils";
import FixedSlot from "./FixedSlot"; import { FixedSlot } from "./FixedSlot";
import { clearMonsterPlaceInteractivities } from "@/reducers/duel/mod"; import { clearMonsterPlaceInteractivities } from "@/reducers/duel/mod";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
...@@ -16,7 +16,7 @@ const floating = NeosConfig.ui.card.floating; ...@@ -16,7 +16,7 @@ const floating = NeosConfig.ui.card.floating;
const left = -2.15; // TODO: config const left = -2.15; // TODO: config
const gap = 1.05; const gap = 1.05;
const Monsters = () => { export const Monsters = () => {
const meMonsters = useAppSelector(selectMeMonsters).inner; const meMonsters = useAppSelector(selectMeMonsters).inner;
const meMonsterPositions = monsterPositions(0, meMonsters); const meMonsterPositions = monsterPositions(0, meMonsters);
const opMonsters = useAppSelector(selectOpMonsters).inner; const opMonsters = useAppSelector(selectOpMonsters).inner;
...@@ -133,5 +133,3 @@ const monsterPositions = (player: number, monsters: CardState[]) => { ...@@ -133,5 +133,3 @@ const monsterPositions = (player: number, monsters: CardState[]) => {
return monsters.map((_, sequence) => new BABYLON.Vector3(x(sequence), y, z)); return monsters.map((_, sequence) => new BABYLON.Vector3(x(sequence), y, z));
}; };
export default Monsters;
...@@ -13,7 +13,7 @@ import NeosConfig from "../../../../neos.config.json"; ...@@ -13,7 +13,7 @@ import NeosConfig from "../../../../neos.config.json";
const transform = NeosConfig.ui.card.transform; const transform = NeosConfig.ui.card.transform;
export const Depth = 0.005; export const Depth = 0.005;
const SingleSlot = (props: { export const SingleSlot = (props: {
state: CardState[]; state: CardState[];
position: BABYLON.Vector3; position: BABYLON.Vector3;
rotation: BABYLON.Vector3; rotation: BABYLON.Vector3;
...@@ -83,5 +83,3 @@ const SingleSlot = (props: { ...@@ -83,5 +83,3 @@ const SingleSlot = (props: {
</box> </box>
); );
}; };
export default SingleSlot;
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "@/hook"; 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";
import { cardSlotRotation } from "../utils"; import { cardSlotRotation } from "../utils";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
const CommonDeck = () => { export const CommonDeck = () => {
const meDeck = useAppSelector(selectMeDeck).inner; const meDeck = useAppSelector(selectMeDeck).inner;
const opDeck = useAppSelector(selectOpDeck).inner; const opDeck = useAppSelector(selectOpDeck).inner;
...@@ -32,5 +32,3 @@ const deckPosition = (player: number, deckLength: number) => { ...@@ -32,5 +32,3 @@ const deckPosition = (player: number, deckLength: number) => {
return new BABYLON.Vector3(x, y, z); return new BABYLON.Vector3(x, y, z);
}; };
export default CommonDeck;
import SingleSlot, { Depth } from "./SingleSlot"; import { SingleSlot, Depth } from "./SingleSlot";
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { import {
...@@ -8,7 +8,7 @@ import { ...@@ -8,7 +8,7 @@ import {
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import { cardSlotRotation } from "../utils"; import { cardSlotRotation } from "../utils";
const ExtraDeck = () => { export const ExtraDeck = () => {
const meExtraDeck = useAppSelector(selectMeExtraDeck).inner; const meExtraDeck = useAppSelector(selectMeExtraDeck).inner;
const opExtraDeck = useAppSelector(selectOpExtraDeck).inner; const opExtraDeck = useAppSelector(selectOpExtraDeck).inner;
...@@ -35,5 +35,3 @@ const extraDeckPosition = (player: number, deckLength: number) => { ...@@ -35,5 +35,3 @@ const extraDeckPosition = (player: number, deckLength: number) => {
return new BABYLON.Vector3(x, y, z); return new BABYLON.Vector3(x, y, z);
}; };
export default ExtraDeck;
...@@ -2,12 +2,12 @@ import * as BABYLON from "@babylonjs/core"; ...@@ -2,12 +2,12 @@ import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice"; import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice";
import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod"; import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod";
import FixedSlot from "./FixedSlot"; import { FixedSlot } from "./FixedSlot";
import { Depth } from "./SingleSlot"; import { Depth } from "./SingleSlot";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
import { cardSlotRotation } from "../utils"; import { cardSlotRotation } from "../utils";
const Field = () => { export const Field = () => {
const meField = useAppSelector(selectMeMagics).inner.find( const meField = useAppSelector(selectMeMagics).inner.find(
(_, sequence) => sequence == 5 (_, sequence) => sequence == 5
); );
...@@ -50,5 +50,3 @@ const fieldPosition = (player: number) => { ...@@ -50,5 +50,3 @@ const fieldPosition = (player: number) => {
return new BABYLON.Vector3(x, y, z); return new BABYLON.Vector3(x, y, z);
}; };
export default Field;
...@@ -25,7 +25,7 @@ const cardDefenceRotation = new BABYLON.Vector3( ...@@ -25,7 +25,7 @@ const cardDefenceRotation = new BABYLON.Vector3(
defenceRotation.z defenceRotation.z
); );
const FixedSlot = (props: { export const FixedSlot = (props: {
state: CardState; state: CardState;
sequence: number; sequence: number;
position: BABYLON.Vector3; position: BABYLON.Vector3;
...@@ -128,5 +128,3 @@ const FixedSlot = (props: { ...@@ -128,5 +128,3 @@ const FixedSlot = (props: {
</plane> </plane>
); );
}; };
export default FixedSlot;
...@@ -21,7 +21,7 @@ const rotation = NeosConfig.ui.card.handRotation; ...@@ -21,7 +21,7 @@ const rotation = NeosConfig.ui.card.handRotation;
const handRotation = new BABYLON.Vector3(rotation.x, rotation.y, rotation.z); const handRotation = new BABYLON.Vector3(rotation.x, rotation.y, rotation.z);
const hoverScaling = NeosConfig.ui.card.handHoverScaling; const hoverScaling = NeosConfig.ui.card.handHoverScaling;
const Hands = () => { export const Hands = () => {
const meHands = useAppSelector(selectMeHands).inner; const meHands = useAppSelector(selectMeHands).inner;
const meHandPositions = handPositons(0, meHands); const meHandPositions = handPositons(0, meHands);
const opHands = useAppSelector(selectOpHands).inner; const opHands = useAppSelector(selectOpHands).inner;
...@@ -168,5 +168,3 @@ const handPositons = (player: number, hands: CardState[]) => { ...@@ -168,5 +168,3 @@ const handPositons = (player: number, hands: CardState[]) => {
return hands.map((_, idx) => new BABYLON.Vector3(x(idx), y, z)); return hands.map((_, idx) => new BABYLON.Vector3(x(idx), y, z));
}; };
export default Hands;
export * from "./FixedSlot";
export * from "./SingleSlot";
export * from "./BanishedZone";
export * from "./Deck";
export * from "./ExtraDeck";
export * from "./Field";
export * from "./Graveyard";
export * from "./Hands";
export * from "./Magics";
export * from "./Monsters";
...@@ -3,7 +3,7 @@ import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice"; ...@@ -3,7 +3,7 @@ import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice";
import { CardState } from "@/reducers/duel/generic"; import { CardState } from "@/reducers/duel/generic";
import { useAppSelector } from "@/hook"; import { useAppSelector } from "@/hook";
import { zip, cardSlotRotation } from "../utils"; import { zip, cardSlotRotation } from "../utils";
import FixedSlot from "./FixedSlot"; import { FixedSlot } from "./FixedSlot";
import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod"; import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
...@@ -12,7 +12,7 @@ const left = -2.15; ...@@ -12,7 +12,7 @@ const left = -2.15;
const gap = 1.05; const gap = 1.05;
const transform = NeosConfig.ui.card.transform; const transform = NeosConfig.ui.card.transform;
const Magics = () => { export const Magics = () => {
const meMagics = useAppSelector(selectMeMagics).inner; const meMagics = useAppSelector(selectMeMagics).inner;
const meMagicPositions = magicPositions(0, meMagics); const meMagicPositions = magicPositions(0, meMagics);
const opMagics = useAppSelector(selectOpMagics).inner; const opMagics = useAppSelector(selectOpMagics).inner;
...@@ -60,5 +60,3 @@ const magicPositions = (player: number, magics: CardState[]) => { ...@@ -60,5 +60,3 @@ const magicPositions = (player: number, magics: CardState[]) => {
return magics.map((_, sequence) => new BABYLON.Vector3(x(sequence), y, z)); return magics.map((_, sequence) => new BABYLON.Vector3(x(sequence), y, z));
}; };
export default Magics;
...@@ -7,7 +7,7 @@ import { ...@@ -7,7 +7,7 @@ import {
selectOpMonsters, selectOpMonsters,
} from "@/reducers/duel/monstersSlice"; } from "@/reducers/duel/monstersSlice";
import { zip, cardSlotRotation, cardSlotDefenceRotation } from "../utils"; import { zip, cardSlotRotation, cardSlotDefenceRotation } from "../utils";
import FixedSlot from "./FixedSlot"; import { FixedSlot } from "./FixedSlot";
import { clearMonsterPlaceInteractivities } from "@/reducers/duel/mod"; import { clearMonsterPlaceInteractivities } from "@/reducers/duel/mod";
import NeosConfig from "../../../../neos.config.json"; import NeosConfig from "../../../../neos.config.json";
...@@ -16,7 +16,7 @@ const floating = NeosConfig.ui.card.floating; ...@@ -16,7 +16,7 @@ const floating = NeosConfig.ui.card.floating;
const left = -2.15; // TODO: config const left = -2.15; // TODO: config
const gap = 1.05; const gap = 1.05;
const Monsters = () => { export const Monsters = () => {
const meMonsters = useAppSelector(selectMeMonsters).inner; const meMonsters = useAppSelector(selectMeMonsters).inner;
const meMonsterPositions = monsterPositions(0, meMonsters); const meMonsterPositions = monsterPositions(0, meMonsters);
const opMonsters = useAppSelector(selectOpMonsters).inner; const opMonsters = useAppSelector(selectOpMonsters).inner;
...@@ -133,5 +133,3 @@ const monsterPositions = (player: number, monsters: CardState[]) => { ...@@ -133,5 +133,3 @@ const monsterPositions = (player: number, monsters: CardState[]) => {
return monsters.map((_, sequence) => new BABYLON.Vector3(x(sequence), y, z)); return monsters.map((_, sequence) => new BABYLON.Vector3(x(sequence), y, z));
}; };
export default Monsters;
...@@ -13,7 +13,7 @@ import NeosConfig from "../../../../neos.config.json"; ...@@ -13,7 +13,7 @@ import NeosConfig from "../../../../neos.config.json";
const transform = NeosConfig.ui.card.transform; const transform = NeosConfig.ui.card.transform;
export const Depth = 0.005; export const Depth = 0.005;
const SingleSlot = (props: { export const SingleSlot = (props: {
state: CardState[]; state: CardState[];
position: BABYLON.Vector3; position: BABYLON.Vector3;
rotation: BABYLON.Vector3; rotation: BABYLON.Vector3;
...@@ -83,5 +83,3 @@ const SingleSlot = (props: { ...@@ -83,5 +83,3 @@ const SingleSlot = (props: {
</box> </box>
); );
}; };
export default SingleSlot;
...@@ -2,33 +2,37 @@ import React from "react"; ...@@ -2,33 +2,37 @@ import React from "react";
import { Engine, Scene } from "react-babylonjs"; import { Engine, Scene } from "react-babylonjs";
import { ReactReduxContext, Provider } from "react-redux"; import { ReactReduxContext, Provider } from "react-redux";
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import Hands from "./PlayMat/Hands"; import {
import Monsters from "./PlayMat/Monsters"; Hands,
import CardModal from "./Message/CardModal"; Monsters,
import HintNotification from "./Message/HintNotification"; Magics,
import Magics from "./PlayMat/Magics"; Field,
import Field from "./PlayMat/Field"; Graveyard,
import CommonDeck from "./PlayMat/Deck"; ExtraDeck,
import Exclusion from "./PlayMat/BanishedZone"; } from "./PlayMat";
import Graveyard from "./PlayMat/Graveyard"; import {
import CardListModal from "./Message/CardListModal"; CardModal,
import CheckCardModal from "./Message/CheckCardModal"; HintNotification,
import YesNoModal from "./Message/YesNoModal"; CardListModal,
import PositionModal from "./Message/PositionModal"; CheckCardModal,
import OptionModal from "./Message/OptionModal"; YesNoModal,
import Phase from "./Message/Phase"; PositionModal,
import CheckCardModalV2 from "./Message/CheckCardModalV2"; OptionModal,
import ExtraDeck from "./PlayMat/ExtraDeck"; Phase,
CheckCardModalV2,
DuelTimeLine,
SendBox,
PlayerStatus,
Alert,
CheckCardModalV3,
CheckCounterModal,
SortCardModal,
} from "./Message";
import { CommonDeck } from "./PlayMat/Deck";
import { BanishedZone } from "./PlayMat/BanishedZone";
import NeosLayout from "./Layout"; import NeosLayout from "./Layout";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import DuelTimeLine from "./Message/TimeLine";
import { Row } from "antd"; import { Row } from "antd";
import SendBox from "./Message/SendBox";
import PlayerStatus from "./Message/Status";
import Alert from "./Message/Alert";
import CheckCardModalV3 from "./Message/CheckCardModalV3";
import CheckCounterModal from "./Message/CheckCounterModal";
import SortCardModal from "./Message/SortCardModal";
// Ref: https://github.com/brianzinn/react-babylonjs/issues/126 // Ref: https://github.com/brianzinn/react-babylonjs/issues/126
const NeosDuel = () => { const NeosDuel = () => {
...@@ -82,7 +86,7 @@ const NeosCanvas = () => ( ...@@ -82,7 +86,7 @@ const NeosCanvas = () => (
<CommonDeck /> <CommonDeck />
<ExtraDeck /> <ExtraDeck />
<Graveyard /> <Graveyard />
<Exclusion /> <BanishedZone />
<Field /> <Field />
<Ground /> <Ground />
</Provider> </Provider>
......
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