コード例 #1
0
ファイル: Room.cs プロジェクト: MilesBoulanger/game-creator
        internal Room(ResourceContext context)
            : base(context, null)
        {
            context.Rooms.Install(this);

            Name = string.Format("room{0}", Id);
        }
コード例 #2
0
        protected internal Instance(ResourceContext context, int objectIndex)
            : base(context)
        {
            ObjectIndex = objectIndex;

            context.Instances.Install(this);
        }
コード例 #3
0
        protected internal Instance(ResourceContext context, int objectIndex, int index)
            : base(context)
        {
            ObjectIndex = objectIndex;

            if (index != 0)
                context.Instances.Install(this, index);
        }
コード例 #4
0
ファイル: Script.cs プロジェクト: MilesBoulanger/game-creator
        internal Script(ResourceContext context)
            : base(context, null)
        {
            context.Scripts.Install(this);

            Code = string.Empty;
            Name = string.Format("script{0}", Id);
        }
コード例 #5
0
ファイル: Sprite.cs プロジェクト: MilesBoulanger/game-creator
 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);
 }
コード例 #6
0
ファイル: Object.cs プロジェクト: MilesBoulanger/game-creator
        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>>();
        }
コード例 #7
0
ファイル: Action.cs プロジェクト: MilesBoulanger/game-creator
 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]);
 }
コード例 #8
0
ファイル: Sprite.cs プロジェクト: slagusev/game-creator-1
 internal Sprite(ResourceContext context, string name, int subimages)
     : this(context, name, -1, subimages)
 {
 }
コード例 #9
0
 protected internal IndexedResource(ResourceContext context)
 {
     Context = context;
 }
コード例 #10
0
ファイル: Script.cs プロジェクト: slagusev/game-creator-1
 internal Script(ResourceContext context, string name, int index, string code)
     : base(context, name)
 {
     context.Scripts.Install(this, index);
     Code = code;
 }
コード例 #11
0
 internal IndexedResourceManager(ResourceContext context)
     : this(context, 0)
 {
 }
コード例 #12
0
 protected internal Instance(ResourceContext context)
     : base(context)
 {
 }
コード例 #13
0
 protected internal NamedIndexedResource(ResourceContext context, string name)
     : base(context)
 {
     Name = name;
 }
コード例 #14
0
 internal IndexedResourceManager(ResourceContext context, int initialIndex)
 {
     context.Managers.Add(typeof(T), this);
     Context   = context;
     NextIndex = initialIndex;
 }
コード例 #15
0
 public GameInstance(ResourceContext context, int object_index, int id)
     : base(context, object_index, id) { }
コード例 #16
0
ファイル: Room.cs プロジェクト: MilesBoulanger/game-creator
 internal Room(ResourceContext context, string name, int index)
     : base(context, name)
 {
     context.Rooms.Install(this, index);
 }
コード例 #17
0
ファイル: Sprite.cs プロジェクト: MilesBoulanger/game-creator
 internal Sprite(ResourceContext context, string name, int subimages)
     : this(context, name, -1, subimages) { }
コード例 #18
0
 protected internal IndexedResource(ResourceContext context)
 {
     Context = context;
 }
コード例 #19
0
 // use Env.CreateInstance() or Env.CreatePrivateInstance().
 protected internal RuntimeInstance(ResourceContext context, int object_index, int id)
     : base(context, object_index, id) { }
コード例 #20
0
ファイル: Script.cs プロジェクト: MilesBoulanger/game-creator
 internal Script(ResourceContext context, string name, int index, string code)
     : base(context, name)
 {
     context.Scripts.Install(this, index);
     Code = code;
 }
コード例 #21
0
 public GameInstance(ResourceContext context)
     : base(context, 0, 0) { }
コード例 #22
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);
            }
        }
コード例 #23
0
 internal Room(ResourceContext context, string name, int index)
     : base(context, name)
 {
     context.Rooms.Install(this, index);
 }
コード例 #24
0
 protected internal RuntimeInstance(ResourceContext context)
     : base(context) { }
コード例 #25
0
 protected internal NamedIndexedResource(ResourceContext context, string name)
     : base(context)
 {
     Name = name;
 }