mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2025-12-15 21:24:18 +01:00
Test state done.
This commit is contained in:
parent
129f9e070f
commit
b37167f2dd
18 changed files with 521 additions and 156 deletions
|
|
@ -95,36 +95,6 @@ public class DesignPanel
|
|||
private string SelectionName
|
||||
=> _selector.Selected == null ? "No Selection" : _selector.IncognitoMode ? _selector.Selected.Incognito : _selector.Selected.Name.Text;
|
||||
|
||||
private void DrawMetaData()
|
||||
{
|
||||
if (!ImGui.CollapsingHeader("MetaData"))
|
||||
return;
|
||||
|
||||
using (var group1 = ImRaii.Group())
|
||||
{
|
||||
var apply = _selector.Selected!.DesignData.IsHatVisible();
|
||||
if (ImGui.Checkbox("Hat Visible", ref apply))
|
||||
_manager.ChangeMeta(_selector.Selected, ActorState.MetaIndex.HatState, apply);
|
||||
|
||||
apply = _selector.Selected.DesignData.IsWeaponVisible();
|
||||
if (ImGui.Checkbox("Weapon Visible", ref apply))
|
||||
_manager.ChangeMeta(_selector.Selected, ActorState.MetaIndex.WeaponState, apply);
|
||||
}
|
||||
|
||||
ImGui.SameLine(ImGui.GetContentRegionAvail().X / 2);
|
||||
|
||||
using (var group2 = ImRaii.Group())
|
||||
{
|
||||
var apply = _selector.Selected.DesignData.IsVisorToggled();
|
||||
if (ImGui.Checkbox("Visor Toggled", ref apply))
|
||||
_manager.ChangeMeta(_selector.Selected, ActorState.MetaIndex.VisorState, apply);
|
||||
|
||||
apply = _selector.Selected.DesignData.IsWet();
|
||||
if (ImGui.Checkbox("Force Wetness", ref apply))
|
||||
_manager.ChangeMeta(_selector.Selected, ActorState.MetaIndex.Wetness, apply);
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawEquipment()
|
||||
{
|
||||
if (!ImGui.CollapsingHeader("Equipment"))
|
||||
|
|
@ -135,41 +105,82 @@ public class DesignPanel
|
|||
{
|
||||
var changes = _equipmentDrawer.DrawEquip(slot, _selector.Selected!.DesignData, out var newArmor, out var newStain,
|
||||
_selector.Selected.ApplyEquip, out var newApply, out var newApplyStain, _selector.Selected!.WriteProtected());
|
||||
if (changes.HasFlag(EquipmentDrawer.EquipChange.Item))
|
||||
if (changes.HasFlag(DataChange.Item))
|
||||
_manager.ChangeEquip(_selector.Selected, slot, newArmor);
|
||||
if (changes.HasFlag(EquipmentDrawer.EquipChange.Stain))
|
||||
if (changes.HasFlag(DataChange.Stain))
|
||||
_manager.ChangeStain(_selector.Selected, slot, newStain);
|
||||
if (changes.HasFlag(EquipmentDrawer.EquipChange.ApplyItem))
|
||||
if (changes.HasFlag(DataChange.ApplyItem))
|
||||
_manager.ChangeApplyEquip(_selector.Selected, slot, newApply);
|
||||
if (changes.HasFlag(EquipmentDrawer.EquipChange.ApplyStain))
|
||||
if (changes.HasFlag(DataChange.ApplyStain))
|
||||
_manager.ChangeApplyStain(_selector.Selected, slot, newApplyStain);
|
||||
}
|
||||
|
||||
var weaponChanges = _equipmentDrawer.DrawWeapons(_selector.Selected!.DesignData, out var newMainhand, out var newOffhand,
|
||||
out var newMainhandStain, out var newOffhandStain, _selector.Selected.ApplyEquip, out var applyMain, out var applyMainStain,
|
||||
out var applyOff, out var applyOffStain, _selector.Selected!.WriteProtected());
|
||||
if (weaponChanges.HasFlag(EquipmentDrawer.EquipChange.Item))
|
||||
|
||||
if (weaponChanges.HasFlag(DataChange.Item))
|
||||
_manager.ChangeWeapon(_selector.Selected, EquipSlot.MainHand, newMainhand);
|
||||
if (weaponChanges.HasFlag(EquipmentDrawer.EquipChange.Stain))
|
||||
if (weaponChanges.HasFlag(DataChange.Stain))
|
||||
_manager.ChangeStain(_selector.Selected, EquipSlot.MainHand, newMainhandStain);
|
||||
if (weaponChanges.HasFlag(EquipmentDrawer.EquipChange.ApplyItem))
|
||||
if (weaponChanges.HasFlag(DataChange.ApplyItem))
|
||||
_manager.ChangeApplyEquip(_selector.Selected, EquipSlot.MainHand, applyMain);
|
||||
if (weaponChanges.HasFlag(EquipmentDrawer.EquipChange.ApplyStain))
|
||||
if (weaponChanges.HasFlag(DataChange.ApplyStain))
|
||||
_manager.ChangeApplyStain(_selector.Selected, EquipSlot.MainHand, applyMainStain);
|
||||
if (weaponChanges.HasFlag(EquipmentDrawer.EquipChange.Item2))
|
||||
if (weaponChanges.HasFlag(DataChange.Item2))
|
||||
_manager.ChangeWeapon(_selector.Selected, EquipSlot.OffHand, newOffhand);
|
||||
if (weaponChanges.HasFlag(EquipmentDrawer.EquipChange.Stain2))
|
||||
if (weaponChanges.HasFlag(DataChange.Stain2))
|
||||
_manager.ChangeStain(_selector.Selected, EquipSlot.OffHand, newOffhandStain);
|
||||
if (weaponChanges.HasFlag(EquipmentDrawer.EquipChange.ApplyItem2))
|
||||
if (weaponChanges.HasFlag(DataChange.ApplyItem2))
|
||||
_manager.ChangeApplyEquip(_selector.Selected, EquipSlot.OffHand, applyOff);
|
||||
if (weaponChanges.HasFlag(EquipmentDrawer.EquipChange.ApplyStain2))
|
||||
if (weaponChanges.HasFlag(DataChange.ApplyStain2))
|
||||
_manager.ChangeApplyStain(_selector.Selected, EquipSlot.OffHand, applyOffStain);
|
||||
|
||||
ImGui.Dummy(new Vector2(ImGui.GetTextLineHeight() / 2));
|
||||
DrawEquipmentMetaToggles();
|
||||
ImGui.Dummy(new Vector2(ImGui.GetTextLineHeight() / 2));
|
||||
}
|
||||
|
||||
private void DrawEquipmentMetaToggles()
|
||||
{
|
||||
var hatChanges = _equipmentDrawer.DrawHatState(_selector.Selected!.DesignData.IsHatVisible(),
|
||||
_selector.Selected.DoApplyHatVisible(),
|
||||
out var newHatState, out var newHatApply, _selector.Selected.WriteProtected());
|
||||
ApplyChanges(ActorState.MetaIndex.HatState, hatChanges, newHatState, newHatApply);
|
||||
|
||||
ImGui.SameLine();
|
||||
var visorChanges = _equipmentDrawer.DrawVisorState(_selector.Selected!.DesignData.IsVisorToggled(),
|
||||
_selector.Selected.DoApplyVisorToggle(),
|
||||
out var newVisorState, out var newVisorApply, _selector.Selected.WriteProtected());
|
||||
ApplyChanges(ActorState.MetaIndex.VisorState, visorChanges, newVisorState, newVisorApply);
|
||||
|
||||
ImGui.SameLine();
|
||||
var weaponChanges = _equipmentDrawer.DrawWeaponState(_selector.Selected!.DesignData.IsWeaponVisible(),
|
||||
_selector.Selected.DoApplyWeaponVisible(),
|
||||
out var newWeaponState, out var newWeaponApply, _selector.Selected.WriteProtected());
|
||||
ApplyChanges(ActorState.MetaIndex.WeaponState, weaponChanges, newWeaponState, newWeaponApply);
|
||||
}
|
||||
|
||||
private void DrawCustomize()
|
||||
{
|
||||
if (ImGui.CollapsingHeader("Customization"))
|
||||
_customizationDrawer.Draw(_selector.Selected!.DesignData.Customize, _selector.Selected!.WriteProtected());
|
||||
if (!ImGui.CollapsingHeader("Customization"))
|
||||
return;
|
||||
|
||||
_customizationDrawer.Draw(_selector.Selected!.DesignData.Customize, _selector.Selected.ApplyCustomize,
|
||||
_selector.Selected!.WriteProtected());
|
||||
|
||||
if (_customizationDrawer.ChangeApply != _selector.Selected.ApplyCustomize)
|
||||
foreach (var idx in Enum.GetValues<CustomizeIndex>())
|
||||
{
|
||||
var flag = idx.ToFlag();
|
||||
var newValue = _customizationDrawer.ChangeApply.HasFlag(flag);
|
||||
_manager.ChangeApplyCustomize(_selector.Selected, idx, newValue);
|
||||
}
|
||||
|
||||
var wetnessChanges = _customizationDrawer.DrawWetnessState(_selector.Selected!.DesignData.IsWet(),
|
||||
_selector.Selected!.DoApplyWetness(), out var newWetnessState, out var newWetnessApply, _selector.Selected!.WriteProtected());
|
||||
ApplyChanges(ActorState.MetaIndex.Wetness, wetnessChanges, newWetnessState, newWetnessApply);
|
||||
ImGui.Dummy(new Vector2(ImGui.GetTextLineHeight() / 2));
|
||||
}
|
||||
|
||||
private void DrawApplicationRules()
|
||||
|
|
@ -285,7 +296,6 @@ public class DesignPanel
|
|||
return;
|
||||
|
||||
DrawButtonRow();
|
||||
DrawMetaData();
|
||||
DrawCustomize();
|
||||
DrawEquipment();
|
||||
_designDetails.Draw();
|
||||
|
|
@ -354,4 +364,21 @@ public class DesignPanel
|
|||
if (_state.GetOrCreate(id, data.Objects[0], out var state))
|
||||
_state.ApplyDesign(_selector.Selected!, state, StateChanged.Source.Manual);
|
||||
}
|
||||
|
||||
private void ApplyChanges(ActorState.MetaIndex index, DataChange change, bool value, bool apply)
|
||||
{
|
||||
switch (change)
|
||||
{
|
||||
case DataChange.Item:
|
||||
_manager.ChangeMeta(_selector.Selected!, index, value);
|
||||
break;
|
||||
case DataChange.ApplyItem:
|
||||
_manager.ChangeApplyMeta(_selector.Selected!, index, apply);
|
||||
break;
|
||||
case DataChange.Item | DataChange.ApplyItem:
|
||||
_manager.ChangeApplyMeta(_selector.Selected!, index, apply);
|
||||
_manager.ChangeMeta(_selector.Selected!, index, value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue