Add factory for animated Atome

This commit is contained in:
2024-01-26 12:03:56 +01:00
parent 3777d06a0e
commit f7a2cc4c88
20 changed files with 12 additions and 0 deletions

View File

@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
using UnityEngine;
public class AtomeFactory : MonoBehaviour{
public TextAsset jsonFile;
private static AtomeFactory instance;
private AtomesInformation atomeInJson;
private Dictionary<string, AtomeInformation> AtomeDictionary;
public AtomeFactory(TextAsset jsonFile){
AtomeFactory.instance = this;
AtomeDictionary = new Dictionary<string, AtomeInformation>();
atomeInJson = JsonUtility.FromJson<AtomesInformation>(jsonFile.text);
foreach (var atome in atomeInJson.atomes){
AtomeDictionary.Add(atome.symbol, atome);
}
}
public static AtomeFactory getInstrance(){
if(AtomeFactory.instance == null){
Debug.LogError("no Json file");
}
return AtomeFactory.instance;
}
public static AtomeFactory getInstrance(TextAsset jsonFile){
if(AtomeFactory.instance == null){
AtomeFactory.instance = new AtomeFactory(jsonFile);
}
return AtomeFactory.instance;
}
public AtomeInformation createAtome(string symbol){
if(!AtomeDictionary.ContainsKey(symbol)){
Debug.LogError("Atome does not existe in json");
return null;
}
AtomeInformation atome = AtomeDictionary[symbol];
return atome;
}
public GameObject createAnimatedAtome(string atome) {
if(!AtomeDictionary.ContainsKey(symbol)){
Debug.LogError("Atome does not existe in json");
return null;
}
AtomeInformation atome = AtomeDictionary[symbol];
//return le gameObject
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 455447ed8d2676a4ba2d5cf8247bd83c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,37 @@
using System.Collections.Generic;
using System;
[System.Serializable]
public class AtomeProps {
public string yeardiscovered;
public string atomicmass;
public string standardstate;
public string groupblock;
public string discovered_by;
public string named_by;
}
[System.Serializable]
public class Representation {
public string color;
}
[System.Serializable]
public class AtomeInformation
{
public int atomicNumber;
public string symbol;
public string name;
public int protons;
public int neutrons;
public AtomeProps properties;
public Representation representation;
}
[System.Serializable]
public class AtomesInformation
{
// liste des liason entre les atoms
public AtomeInformation[] atomes;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d2ff888d2e46a254ebb339c8dd3ed083
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ab8f44086e6af6f48a38b7d7d595e9a2
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: