Clothing/ClothingBuilder.cs
using Sandbox;
using System;
using System.Collections.Generic;
using System.Text;
namespace SWB.Demo.Clothing
{
public static class ClothingBuilder
{
public static SkinnedModelRenderer BuildFull(SkinnedModelRenderer bodyRenderer, string full)
{
// Luo ClothingContainer pelaajalle
var clothingContainer = ClothingContainer.CreateFromLocalUser();
clothingContainer.Clothing.Clear();
var dir = "models/citizen_clothes/full_outfit/";
var end = ".clothing";
if (!String.IsNullOrEmpty(full))
{
if (ResourceLibrary.TryGet<Sandbox.Clothing>(dir + full + end, out var clothing))
{
clothingContainer.Add(new ClothingContainer.ClothingEntry()
{
Clothing = clothing,
Bone = full
});
}
else
{
Log.Warning("Full clothing resource not found! " + dir + full + end);
}
clothingContainer.Apply(bodyRenderer);
}
return bodyRenderer;
}
public static SkinnedModelRenderer Build(SkinnedModelRenderer smr, string body, string hat, string shirt, string vest, string trousers, string jacket, string hair)
{
// Luo ClothingContainer pelaajalle
var clothingContainer = ClothingContainer.CreateFromLocalUser();
clothingContainer.Clothing.Clear();
clothingContainer = BuildToBone("body", body, clothingContainer);
clothingContainer = BuildToBone("hat", hat, clothingContainer);
clothingContainer = BuildToBone("shirt", shirt, clothingContainer);
clothingContainer = BuildToBone("vest", vest, clothingContainer);
clothingContainer = BuildToBone("trousers", trousers, clothingContainer);
clothingContainer = BuildToBone("jacket", jacket, clothingContainer);
clothingContainer = BuildToBone("hair", hair, clothingContainer);
clothingContainer.Apply(smr);
return smr;
}
private static ClothingContainer BuildToBone(string boneName, string boneDir, ClothingContainer clothingContainer)
{
var dir = "models/citizen_clothes/";
var end = ".clothing";
if (!String.IsNullOrEmpty(boneDir))
{
if (ResourceLibrary.TryGet<Sandbox.Clothing>(dir + boneDir + end, out var clothing))
{
clothingContainer.Add(new ClothingContainer.ClothingEntry()
{
Clothing = clothing,
Bone = boneName
});
}
else
{
Log.Warning("Clothing resource not found! " + dir + boneDir + end);
}
}
return clothingContainer;
}
}
}