diff --git a/Assets/ActiveScoppedElements.cs b/Assets/ActiveScoppedElements.cs index 495997a..77874c4 100644 --- a/Assets/ActiveScoppedElements.cs +++ b/Assets/ActiveScoppedElements.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text; using TMPro; +using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; @@ -33,6 +35,8 @@ public class ActiveScoppedElements : MonoBehaviour public GameObject[] DebugObjs; private AnimationState _animationState = AnimationState.IDLE; private float _animationSpeed = 1.0f; + public GameObject atomPrefabToInstantiate; + private bool IsLock = false; private AtomeFactory _atomFactory; @@ -58,7 +62,7 @@ public class ActiveScoppedElements : MonoBehaviour { actives.Add(name); RefreshText(); - RefreshAtom(); + RefreshAtom(name); } } @@ -128,6 +132,11 @@ public class ActiveScoppedElements : MonoBehaviour this._animationSpeed -= 0.5f; } + public void onClickToggleLockMode() + { + this.IsLock = !this.IsLock; + } + void Update() { if (this._animationState == AnimationState.GORIGHT) @@ -222,9 +231,36 @@ public class ActiveScoppedElements : MonoBehaviour } return null; } - - private void RefreshAtom() + + private void RenderAtom(String elementName) { + var atomObject = GameObject.Find(elementName); + if (atomObject == null) { + return; + } + if (atomObject.transform.childCount >= 1) { + //atomObject.transform.GetChild(0).GetComponent().SetActive(true); + Debug.Log("Object already created !"); + return; + } + var cleanedElement = CleanStringOfDigits(elementName); + var factory = MoleculeFactory.getInstrance(this.jsonFile); + factory.setAtomFactory(this._atomFactory); + if (!factory.GetAtomFactory().hasAtome(cleanedElement)) + { + Debug.Log("No atom found with this formula '" + cleanedElement + "'"); + return; + } + + var obj = Instantiate(atomPrefabToInstantiate, new Vector3(0, 0, 0), Quaternion.identity); + AtomPrefab objPrefab = obj.GetComponent(); + AtomeInformation info = factory.GetAtomFactory().createAtome(cleanedElement); + objPrefab.Render(info); + } + + private void RefreshAtom(String elementName) + { + RenderAtom(elementName); var objToFind = FindGameObjectWithFormula(); if (objToFind != null) { @@ -314,12 +350,36 @@ public class ActiveScoppedElements : MonoBehaviour debugObj.SetActive(true); } } + + private string CleanStringOfNonDigits( string s ) + { + if (string.IsNullOrEmpty(s)) return s; + StringBuilder sb = new StringBuilder(s.Length) ; + for (int i = 0; i < s.Length; ++i) + { + char c = s[i]; + if ( c < '0' ) continue ; + if ( c > '9' ) continue ; + sb.Append(s[i]); + } + string cleaned = sb.ToString(); + return cleaned; + } + + private string CleanStringOfDigits(string s) + { + return new String(s.Where(Char.IsLetter).ToArray()); + } public void RemoveUnscoppedElement(String elementName) { + if (this.IsLock) + { + return; + } Debug.Log("Removed " + elementName); actives.Remove(elementName); RefreshText(); - RefreshAtom(); + RefreshAtom(elementName); } } diff --git a/Assets/AtomPrefab.cs b/Assets/AtomPrefab.cs new file mode 100644 index 0000000..fa88a51 --- /dev/null +++ b/Assets/AtomPrefab.cs @@ -0,0 +1,24 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class AtomPrefab : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + public void Render(AtomeInformation info) + { + Debug.Log("Render from AtomPrefab !"); + Debug.Log("+" + info.name); + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/AtomPrefab.cs.meta b/Assets/AtomPrefab.cs.meta new file mode 100644 index 0000000..5eacc01 --- /dev/null +++ b/Assets/AtomPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47ead1cb7daeaeb4b95eb0a250ab16e2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AtomPrefab.prefab b/Assets/AtomPrefab.prefab new file mode 100644 index 0000000..317b779 --- /dev/null +++ b/Assets/AtomPrefab.prefab @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4409383611147121166 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8219824475726194073} + - component: {fileID: -3269112147395156294} + m_Layer: 0 + m_Name: AtomPrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8219824475726194073 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4409383611147121166} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &-3269112147395156294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4409383611147121166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47ead1cb7daeaeb4b95eb0a250ab16e2, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/AtomPrefab.prefab.meta b/Assets/AtomPrefab.prefab.meta new file mode 100644 index 0000000..df26b31 --- /dev/null +++ b/Assets/AtomPrefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d9d5dcbc28f5ad041b1b60b004ccf890 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/__Scenes/CompositionMode.unity b/Assets/__Scenes/CompositionMode.unity index 72c01ed..9f3cbdb 100644 --- a/Assets/__Scenes/CompositionMode.unity +++ b/Assets/__Scenes/CompositionMode.unity @@ -262,7 +262,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 2115541903} + m_TransformParent: {fileID: 2030766766} m_Modifications: - target: {fileID: 2296197579250447769, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_Name @@ -274,11 +274,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 2.331 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalPosition.y - value: 0.234 + value: -0.004999995 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalPosition.z @@ -290,15 +290,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -567,7 +567,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 231.8, y: 554} + m_AnchoredPosition: {x: 231.8, y: 692.3} m_SizeDelta: {x: 150, y: 50.179993} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &246236246 @@ -1280,7 +1280,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 1344363834} + m_TransformParent: {fileID: 2030766766} m_Modifications: - target: {fileID: 2296197579250447769, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_Name @@ -1292,11 +1292,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 3.45 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalPosition.y - value: 0.234 + value: -0.004999995 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalPosition.z @@ -1308,15 +1308,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -1550,6 +1550,139 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 877453050} m_CullTransparentMesh: 1 +--- !u!1 &877864514 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 877864515} + - component: {fileID: 877864518} + - component: {fileID: 877864517} + - component: {fileID: 877864516} + m_Layer: 5 + m_Name: LockBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &877864515 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 877864514} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -54} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1963975536} + m_Father: {fileID: 1176767512} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 231.8, y: 554} + m_SizeDelta: {x: 150, y: 50.179993} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &877864516 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 877864514} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 877864517} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1201501054} + m_TargetAssemblyTypeName: ActiveScoppedElements, Assembly-CSharp + m_MethodName: onClickToggleLockMode + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &877864517 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 877864514} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &877864518 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 877864514} + m_CullTransparentMesh: 1 --- !u!1 &883501566 GameObject: m_ObjectHideFlags: 0 @@ -1996,6 +2129,7 @@ RectTransform: - {fileID: 1903101193} - {fileID: 1640489757} - {fileID: 246236245} + - {fileID: 877864515} - {fileID: 418945366} - {fileID: 595129154} - {fileID: 245608582} @@ -2014,7 +2148,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 2082618016} + m_TransformParent: {fileID: 2030766766} m_Modifications: - target: {fileID: 2296197579250447769, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_Name @@ -2030,7 +2164,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalPosition.y - value: 0.239 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalPosition.z @@ -2042,15 +2176,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -2119,9 +2253,11 @@ MonoBehaviour: - {fileID: 245608581} - {fileID: 19813356} - {fileID: 1106826236} + - {fileID: 877864514} DebugObjs: - {fileID: 239149474} - {fileID: 436501310} + atomPrefabToInstantiate: {fileID: 4409383611147121166, guid: d9d5dcbc28f5ad041b1b60b004ccf890, type: 3} --- !u!114 &1201501055 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2188,7 +2324,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 1305875256} + m_TransformParent: {fileID: 2030766766} m_Modifications: - target: {fileID: 2296197579250447769, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_Name @@ -2204,7 +2340,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalPosition.y - value: 0.239 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalPosition.z @@ -2216,15 +2352,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: 7c22f7e0b871cb14fa1ad0765c00dfeb, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -2413,8 +2549,7 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1292191404} + m_Children: [] m_Father: {fileID: 2141458387} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1305875257 @@ -2562,8 +2697,7 @@ Transform: m_LocalPosition: {x: 3.45, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 692418288} + m_Children: [] m_Father: {fileID: 2141458387} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1344363835 @@ -2764,8 +2898,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 + m_fontSize: 18 + m_fontSizeBase: 18 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 @@ -2979,8 +3113,7 @@ Transform: m_LocalPosition: {x: 1.134, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1843136735} + m_Children: [] m_Father: {fileID: 2141458387} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1576193662 @@ -3581,7 +3714,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 1576193661} + m_TransformParent: {fileID: 2030766766} m_Modifications: - target: {fileID: 2296197579250447769, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_Name @@ -3593,11 +3726,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 1.134 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalPosition.y - value: 0.234 + value: -0.004999995 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalPosition.z @@ -3609,15 +3742,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -3985,6 +4118,176 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1914407046} m_CullTransparentMesh: 1 +--- !u!1 &1963975535 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1963975536} + - component: {fileID: 1963975538} + - component: {fileID: 1963975537} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1963975536 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1963975535} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 877864515} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1963975537 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1963975535} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Lock/Unlock + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1963975538 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1963975535} + m_CullTransparentMesh: 1 +--- !u!1 &2030766765 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2030766766} + m_Layer: 0 + m_Name: TMP + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &2030766766 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2030766765} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.239, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1193470964} + - {fileID: 1292191404} + - {fileID: 1843136735} + - {fileID: 52111042} + - {fileID: 692418288} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2082618015 GameObject: m_ObjectHideFlags: 0 @@ -4016,8 +4319,7 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1193470964} + m_Children: [] m_Father: {fileID: 2141458387} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2082618017 @@ -4165,8 +4467,7 @@ Transform: m_LocalPosition: {x: 2.331, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 52111042} + m_Children: [] m_Father: {fileID: 2141458387} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2115541904 @@ -4598,3 +4899,4 @@ SceneRoots: - {fileID: 1176767512} - {fileID: 2138147404} - {fileID: 1112541706} + - {fileID: 2030766766} diff --git a/Assets/script/AtomeFactory.cs b/Assets/script/AtomeFactory.cs index 923cf21..9951441 100644 --- a/Assets/script/AtomeFactory.cs +++ b/Assets/script/AtomeFactory.cs @@ -37,7 +37,13 @@ public class AtomeFactory : MonoBehaviour{ return AtomeFactory.instance; } - public AtomeInformation createAtome(string symbol){ + public bool hasAtome(String symbol) + { + return AtomeDictionary.ContainsKey(symbol); + } + + + public AtomeInformation createAtome(string symbol){ if(!AtomeDictionary.ContainsKey(symbol)){ Debug.LogError("Atome does not existe in json"); } diff --git a/Assets/script/MoleculeFactory.cs b/Assets/script/MoleculeFactory.cs index a51db34..aadb05f 100644 --- a/Assets/script/MoleculeFactory.cs +++ b/Assets/script/MoleculeFactory.cs @@ -104,6 +104,11 @@ public class MoleculeFactory : MonoBehaviour{ this.atomeFactory = atomeFactory; } + public AtomeFactory GetAtomFactory() + { + return this.atomeFactory; + } + private GameObject CreateCylinderBetweenPoints(Vector3 start, Vector3 end, float width){ var offset = end - start; var scale = new Vector3(width, offset.magnitude / 2.0f, width);