コード例 #1
0
        public virtual void AddButton(LabyrinthObject labyrinth)
        {
            var button = ButtonTemplate.Create(
                transform,
                labyrinth);

            button.gameObject.SetActive(true);
            button.OnClickedHandler += (x) => OnButtonClickHandler?.Invoke(x);
        }
コード例 #2
0
        public override BaseButton Create(
            Transform parent,
            LabyrinthObject labyrinth)
        {
            var l = this.Create(parent);

            l.labyrinth        = labyrinth;
            l.rawImage.texture = labyrinth.Camera.RenderTexture;
            return(l);
        }
コード例 #3
0
        public void OnEditorState(EditorState state)
        {
            switch (state)
            {
            case EditorState.Editor:
                break;

            case EditorState.Select:

                if (LabyrinthObject != null)
                {
                    LabyrinthObject.gameObject.Destroy();
                    LabyrinthObject = null;
                }

                Labyrinth = null;
                break;
            }
        }
コード例 #4
0
        public override void AddLabyrinth(int i)
        {
            var data = LabyrinthManager.Instance.Labyrinths[i];

            LabyrinthObject labyrinth = Resources.Instance
                                        .GetLabyrinthObject(data)
                                        .Create(data);

            labyrinths.Add(labyrinth);

            labyrinth.GenerateLabyrinthVisual();

            labyrinth.Init(enableCamera: true);

            labyrinth.Camera.OutputToTexture = true;

            labyrinth.transform.position = Vector3.right * Utils.SelectionOffset * (labyrinths.Count - 1);

            AddSection().AddButton(labyrinth);

            OnContentChangedHandler?.Invoke();
        }
コード例 #5
0
        public virtual LabyrinthObject CreateNextLabyrinth()
        {
            var data = LabyrinthManager.Instance.Labyrinths[LabyrinthIndexWrap];

            labyrinthIndex++;

            LabyrinthObject labyrinth = Resources.Instance
                                        .GetLabyrinthObject(data)
                                        .Create(data);

            labyrinths.Add(labyrinth);

            labyrinth.GenerateLabyrinthVisual();

            labyrinth.Init(enableCamera: true);

            labyrinth.Camera.OutputToTexture = true;

            labyrinth.transform.position = Vector3.right * Labyrinths.Utils.SelectionOffset * (labyrinths.Count - 1);

            return(labyrinth);
        }
コード例 #6
0
    public static LabyrinthObject Serdes(int _, LabyrinthObject o, AssetMapping mapping, ISerializer s)
    {
        if (s == null)
        {
            throw new ArgumentNullException(nameof(s));
        }
        o ??= new LabyrinthObject();
        o.Properties = s.EnumU8(nameof(o.Properties), o.Properties);

        // Either a 24 bit int or a 3 byte array, annoying to serialize either way.
        o.Collision = (o.Collision & 0xffff00) | s.UInt8(nameof(o.Collision), (byte)(o.Collision & 0xff));
        o.Collision = (o.Collision & 0xff00ff) | (uint)s.UInt8(nameof(o.Collision), (byte)((o.Collision >> 8) & 0xff)) << 8;
        o.Collision = (o.Collision & 0x00ffff) | (uint)s.UInt8(nameof(o.Collision), (byte)((o.Collision >> 16) & 0xff)) << 16;

        o.SpriteId        = SpriteId.SerdesU16(nameof(SpriteId), o.SpriteId, AssetType.Object3D, mapping, s);
        o.AnimationFrames = s.UInt8(nameof(o.AnimationFrames), o.AnimationFrames);
        o.Unk7            = s.UInt8(nameof(o.Unk7), o.Unk7);
        o.Width           = s.UInt16(nameof(o.Width), o.Width);
        o.Height          = s.UInt16(nameof(o.Height), o.Height);
        o.MapWidth        = s.UInt16(nameof(o.MapWidth), o.MapWidth);
        o.MapHeight       = s.UInt16(nameof(o.MapHeight), o.MapHeight);
        return(o);
    }
コード例 #7
0
 // TODO: this abstraction does not really work, see subclass
 public virtual BaseButton Create(Transform parent, LabyrinthObject labyrinth)
 {
     return(null);
 }