Skip to content

Commit

Permalink
Refactor and fix complete.
Browse files Browse the repository at this point in the history
  • Loading branch information
Smoren committed Apr 29, 2024
1 parent 6e916fe commit 80ccfcc
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import { useSimulationStore } from "@/store/simulation";
import ConfigCoordsBounds from "@/components/config-editor/components/inputs/config-coords-bounds.vue";
import ConfigSection from "@/components/config-editor/components/containers/config-section.vue";
import InputHeader from "@/components/config-editor/components/base/input-header.vue";
import type { InitialConfig } from "@/lib/types/config";
import { ref, type Ref, watch } from "vue";
import { getViewModeConfig } from "@/lib/helpers";
withDefaults(defineProps<{
withButtons?: boolean;
Expand All @@ -13,11 +16,17 @@ withDefaults(defineProps<{
});
const configStore = useConfigStore();
const { initialConfig } = configStore;
const { refillAtoms } = useSimulationStore();
const {
refillAtoms,
} = useSimulationStore();
const getActualInitialConfig = () => {
return getViewModeConfig(configStore.worldConfig).INITIAL;
}
const initialConfig: Ref<InitialConfig> = ref(getActualInitialConfig());
watch(() => configStore.worldConfig.VIEW_MODE, () => {
initialConfig.value = getActualInitialConfig();
});
const refill = () => {
if (confirm('Are you sure?')) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Flag from "@/components/config-editor/components/inputs/flag.vue";
import InputHeader from "@/components/config-editor/components/base/input-header.vue";
const configStore = useConfigStore();
const { randomTypesConfig, initialConfig } = configStore;
const { randomTypesConfig } = configStore;
const {
clearAtoms,
Expand Down
26 changes: 0 additions & 26 deletions src/store/config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { type Ref, ref, watch } from "vue";
import { defineStore } from "pinia";
import type {
InitialConfig,
RandomTypesConfig,
TypesSymmetricConfig,
TypesConfig,
Expand All @@ -15,7 +14,6 @@ import {
createDefaultRandomTypesConfig,
createRandomTypesConfig,
} from "@/lib/config/types";
import { create3dBaseInitialConfig } from "@/lib/config/initial";
import { fullCopyObject } from "@/helpers/utils";
import {
concatArrays,
Expand All @@ -30,11 +28,9 @@ import { useFlash } from '@/hooks/use-flash';
export const useConfigStore = defineStore("config", () => {
const worldConfigRaw: WorldConfig = createBaseWorldConfig();
const typesConfigRaw: TypesConfig = createBaseTypesConfig();
const initialConfigRaw: InitialConfig = create3dBaseInitialConfig();

const worldConfig: Ref<WorldConfig> = ref(fullCopyObject(worldConfigRaw));
const typesConfig: Ref<TypesConfig> = ref(fullCopyObject(typesConfigRaw));
const initialConfig: Ref<InitialConfig> = ref(fullCopyObject(initialConfigRaw));
const randomTypesConfig: Ref<RandomTypesConfig> = ref(createDefaultRandomTypesConfig(typesConfigRaw.COLORS.length));

const flash = useFlash();
Expand All @@ -51,7 +47,6 @@ export const useConfigStore = defineStore("config", () => {
return {
worldConfig: worldConfigRaw,
typesConfig: typesConfigRaw,
initialConfig: initialConfigRaw,
}
}

Expand All @@ -60,21 +55,6 @@ export const useConfigStore = defineStore("config", () => {
worldConfigRaw.VIEW_MODE = viewMode;
}

const setInitialConfigRaw = <T>(newConfig: InitialConfig) => {
const buf = fullCopyObject(newConfig);
for (const i in newConfig) {
(initialConfigRaw[i as keyof InitialConfig] as T) = buf[i as keyof InitialConfig] as T;
}
}

const setInitialConfig = <T>(newConfig: InitialConfig) => {
const buf = fullCopyObject(newConfig);
for (const i in newConfig) {
(initialConfig.value[i as keyof InitialConfig] as T) = buf[i as keyof InitialConfig] as T;
}
setInitialConfigRaw(newConfig);
}

const setTypesConfigRaw = <T>(newConfig: TypesConfig) => {
const buf = fullCopyObject(newConfig);
for (const i in newConfig) {
Expand Down Expand Up @@ -333,19 +313,13 @@ export const useConfigStore = defineStore("config", () => {
setTypesConfigRaw(newConfig);
}, { deep: true });

watch(initialConfig, <T>(newConfig: InitialConfig) => {
setInitialConfigRaw(newConfig);
}, { deep: true });

return {
worldConfig,
typesConfig,
initialConfig,
randomTypesConfig,
typesSymmetricConfig,
getConfigValues,
setViewMode,
setInitialConfig,
setTypesConfig,
setWorldConfig,
randomizeTypesConfig,
Expand Down
6 changes: 0 additions & 6 deletions src/store/simulation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,12 @@ export const useSimulationStore = defineStore("simulation", () => {
}

const start3dSimulation = async () => {
configStore.setInitialConfig(create3dBaseInitialConfig());

await init();

simulation3d?.start();
};

const start2dSimulation = async () => {
configStore.setInitialConfig(create2dBaseInitialConfig());

await init();

simulation2d?.start();
};

Expand Down

0 comments on commit 80ccfcc

Please sign in to comment.