Example #1
0
        public DungeonDomainBuilder AddDecoration(DungeonTheme theme, DecorationInfo info)
        {
            if (info == null)
            {
                return(this);
            }

            Action($"Add decoration");
            {
                Do((context) =>
                {
                    var parentRoom = context.RoomStack.Peek();
                    if (parentRoom != null)
                    {
                        var decorationName = info.Ground != null ? info.Ground.name :
                                             info.Items != null ? info.Items.name :
                                             info.Characters != null ? info.Characters.name : "";
                        Debug.Log($"Spawn decoration {decorationName} in room {parentRoom.Id}\n");


                        var decorationMeta = new DungeonRoomDecorationMeta();
                        decorationMeta.Generate(theme, info);
                        parentRoom.DecorationMeta.Add(decorationMeta);

                        return(TaskStatus.Success);
                    }

                    Debug.Log($"Error! Can't spawn decoration in the void!\n");
                    return(TaskStatus.Failure);
                });
            }
            End();

            return(this);
        }
Example #2
0
        public DungeonDomainBuilder AddDecoration(DungeonTheme theme, TextAsset textAsset)
        {
            if (textAsset == null)
            {
                return(this);
            }

            Action($"Add decoration");
            {
                Do((context) =>
                {
                    var parentRoom = context.RoomStack.Peek();
                    if (parentRoom != null)
                    {
                        Debug.Log($"Spawn decoration {textAsset.name} in room {parentRoom.Id}\n");
                        var decorationMeta = new DungeonRoomDecorationMeta();
                        decorationMeta.GenerateGround(theme, textAsset);
                        parentRoom.DecorationMeta.Add(decorationMeta);
                        return(TaskStatus.Success);
                    }

                    Debug.Log($"Error! Can't spawn decoration in the void!\n");
                    return(TaskStatus.Failure);
                });
            }
            End();

            return(this);
        }