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); }
public static void LoadMesh(this DecorationInfo info, Mesh mesh) { if (mesh == null) { return; } info.m_mesh = mesh; }
public static void LoadTexture(this DecorationInfo info, Texture2D texture) { if (texture == null) { return; } info?.m_renderMaterial?.SetTexture("_MainTex", texture); }
public void Generate(DungeonTheme theme, DecorationInfo info) { if (info == null) { return; } if (info.Ground != null) { GenerateGround(theme, info.Ground); } if (info.Items != null) { WriteItems(info.Items); } if (info.Characters != null) { WriteCharacters(info.Characters); } }
public static Texture2D GetTexture(this DecorationInfo info) { return(info.m_renderMaterial?.GetTexture("_MainTex") as Texture2D); }
public static Mesh GetMesh(this DecorationInfo info) { return(info.m_mesh); }