private IWorkshopTree NewStruct(ActionSet actionSet, Constructor constructor, IWorkshopTree[] constructorValues) { var structObject = actionSet.VarCollection.Assign("_new_" + Name + "_class_index", actionSet.IsGlobal, true); SetInitialVariables(structObject, actionSet); // Run the constructor. AddObjectVariablesToAssigner(structObject, actionSet.IndexAssigner); constructor.Parse(actionSet, constructorValues); return(structObject.GetVariable()); }
private IWorkshopTree NewClass(ActionSet actionSet, Constructor constructor, IWorkshopTree[] constructorValues) { var classData = actionSet.Translate.DeltinScript.SetupClasses(); // Classes are stored in the class array (`classData.ClassArray`), // this stores the index where the new class is created at. var classReference = actionSet.VarCollection.Assign("_new_" + Name + "_class_index", actionSet.IsGlobal, true); GetClassIndex(classReference, actionSet, classData); var classObject = classData.ClassArray.CreateChild((Element)classReference.GetVariable()); SetInitialVariables(classObject, actionSet); // Run the constructor. AddObjectVariablesToAssigner(classObject, actionSet.IndexAssigner); constructor.Parse(actionSet, constructorValues); return(classReference.GetVariable()); }