@inherits Sandbox.UI.Panel
@page "/front"
@using MenuProject.MenuUI.Components
@using Sandbox;
@using Sandbox.UI;
@namespace Menu
@if ( Application.IsEditor )
{
}
@code
{
bool IsHuman => Scene.Directory.FindByName("Player Human").FirstOrDefault()?.Active ?? false;
string CurrentModelMode => IsHuman ? "Human" : "Citizen";
string CurrentModelIcon => IsHuman ? "emoji_people" : "egg";
protected override int BuildHash() => System.HashCode.Combine(IsHuman);
void OpenAvatarScene()
{
var options = new SceneLoadOptions();
options.ShowLoadingScreen = false;
options.SetScene("/scenes/avatar.scene");
Game.ActiveScene.Load(options);
}
async Task ToggleHuman()
{
var clothing = ClothingContainer.CreateFromLocalUser();
clothing.PrefersHuman = !clothing.PrefersHuman;
var human = Scene.Directory.FindByName("Player Human").FirstOrDefault();
var citizen = Scene.Directory.FindByName("Player Citizen").FirstOrDefault();
var fx = Scene.Camera.GetOrAddComponent();
var gr = Scene.Camera.GetOrAddComponent();
var b = Scene.Camera.GetOrAddComponent();
fx.Enabled = true;
gr.Enabled = true;
var a = clothing.PrefersHuman;
RealTimeSince t = 0;
var transitionLength = 0.1f;
while (t < transitionLength)
{
fx.Scale = t.Relative.Remap(0, transitionLength, 0, 1f);
gr.Intensity = t.Relative.Remap(0, transitionLength, 0, 0.5f);
await Task.Delay(1);
}
await Task.Delay(50);
using (Scene.Push())
{
human.Enabled = a;
citizen.Enabled = !a;
}
t = 0;
while (t < transitionLength)
{
fx.Scale = t.Relative.Remap(0, transitionLength, 1f, 0);
gr.Intensity = t.Relative.Remap(0, transitionLength, 0.5f, 0f);
await Task.Delay(1);
}
using (Scene.Push())
{
fx.Enabled = false;
gr.Enabled = false;
}
_ = MenuUtility.SaveAvatar(clothing, true, 0);
}
}