internal Room(ResourceContext context) : base(context, null) { context.Rooms.Install(this); Name = string.Format("room{0}", Id); }
protected internal Instance(ResourceContext context, int objectIndex) : base(context) { ObjectIndex = objectIndex; context.Instances.Install(this); }
protected internal Instance(ResourceContext context, int objectIndex, int index) : base(context) { ObjectIndex = objectIndex; if (index != 0) context.Instances.Install(this, index); }
internal Script(ResourceContext context) : base(context, null) { context.Scripts.Install(this); Code = string.Empty; Name = string.Format("script{0}", Id); }
internal Sprite(ResourceContext context, string name, int index, int subimages) : base(context, name) { context.Sprites.Install(this, index); if (string.IsNullOrEmpty(Name)) Name = "sprite" + Id; Initialize(subimages); }
internal Object(ResourceContext context, string name = null, int index = -1, int parent = -1) : base(context, name) { Context.Objects.Install(this, index); Parent = parent; if (name == null) Name = string.Format("object{0}", Id); Events = new Dictionary<EventType, Dictionary<int, Event>>(); }
public Action(ResourceContext context, int libid, int id, string[] args, int appliesto, bool relative, bool not) { Context = context; Definition = context.Context.GetAction(libid, id); Arguments = args; AppliesTo = appliesto; Relative = relative; Not = not; if (Definition.Kind == ActionKind.Code) Code = Arguments[0]; else if (Definition.Kind == ActionKind.Variable) Code = string.Format(Relative ? "{0} += {1}" : "{0} = {1}", Arguments[0], Arguments[1]); }
internal Sprite(ResourceContext context, string name, int subimages) : this(context, name, -1, subimages) { }
protected internal IndexedResource(ResourceContext context) { Context = context; }
internal Script(ResourceContext context, string name, int index, string code) : base(context, name) { context.Scripts.Install(this, index); Code = code; }
internal IndexedResourceManager(ResourceContext context) : this(context, 0) { }
protected internal Instance(ResourceContext context) : base(context) { }
protected internal NamedIndexedResource(ResourceContext context, string name) : base(context) { Name = name; }
internal IndexedResourceManager(ResourceContext context, int initialIndex) { context.Managers.Add(typeof(T), this); Context = context; NextIndex = initialIndex; }
public GameInstance(ResourceContext context, int object_index, int id) : base(context, object_index, id) { }
internal Room(ResourceContext context, string name, int index) : base(context, name) { context.Rooms.Install(this, index); }
// use Env.CreateInstance() or Env.CreatePrivateInstance(). protected internal RuntimeInstance(ResourceContext context, int object_index, int id) : base(context, object_index, id) { }
public GameInstance(ResourceContext context) : base(context, 0, 0) { }
public void Initialize(ILibraryInitializer initializer) { Libraries = new Dictionary<int, ActionLibrary>(); Functions = new Dictionary<string, IFunction>(); BuiltInVariables = new List<string>(); InstanceVariables = new List<string>(); Constants = new Dictionary<string, Value>(); InstanceFactory = initializer.CreateInstanceFactory(this); PerformEvent = initializer.PerformEvent; Resources = Resources ?? new ResourceContext(this); if (initializer != null) { // Build the list of functions foreach (var mi in initializer.FunctionLibraries.SelectMany( t => t.GetMethods(BindingFlags.Public | BindingFlags.Static)) .Where(mi => mi.GetCustomAttributes(typeof(GmlFunctionAttribute), false) .Any()) ) { var fn = (GmlFunctionAttribute)mi.GetCustomAttributes(typeof(GmlFunctionAttribute), false).Single(); string name = string.IsNullOrEmpty(fn.Name) ? mi.Name : fn.Name; Functions.Add(name, initializer.TransformFunction(mi, name)); } // Add built-in variables (InstanceVariables as List<string>).AddRange(initializer.InstanceVariables); (BuiltInVariables as List<string>).AddRange(initializer.GlobalVariables); // Add constants foreach (var c in initializer.Constants) Constants.Add(c.Key, c.Value); } }
protected internal RuntimeInstance(ResourceContext context) : base(context) { }