Construct Compound
This commit is contained in:
@@ -10,11 +10,10 @@ public partial class Bottle : MenuButton, IChemicalContainer
|
||||
private HeterogeneousMixture HeterogeneousMixture { get; set; }
|
||||
public double Volume() => ContainerVolume;
|
||||
|
||||
public HeterogeneousMixture Content { get; set; }
|
||||
public HeterogeneousMixture Content { get; set; } = HeterogeneousMixture.Null;
|
||||
public double EnvironmentPressure { get; set; }
|
||||
public double EnvironmentTemperature { get; set; }
|
||||
public HeterogeneousMixture ChemicalContent { get; set; } = HeterogeneousMixture.Null;
|
||||
public HomogeneousMixture MainComponent => ChemicalContent.Layers
|
||||
public HomogeneousMixture MainComponent => Content.Layers
|
||||
.DefaultIfEmpty(HomogeneousMixture.Null)
|
||||
.MaxBy(x => x.Amount);
|
||||
public Compound MainCompound => MainComponent.Compounds
|
||||
@@ -23,12 +22,24 @@ public partial class Bottle : MenuButton, IChemicalContainer
|
||||
|
||||
private const string Empty = "Empty";
|
||||
private string PotionName => $"Main: {(MainCompound == Compound.Null ? Empty : MainCompound.Expression)}";
|
||||
private string PotionAmount => $"Amount: {(MainCompound == Compound.Null ? 0d : ChemicalContent.Amount)}";
|
||||
private string PotionAmount => $"Amount: {(MainCompound == Compound.Null ? 0d : Content.Amount)}";
|
||||
|
||||
public Sprite2D ContentTexture { get; set; }
|
||||
|
||||
private void BuildMenu()
|
||||
public void BuildMenu()
|
||||
{
|
||||
|
||||
if (Content == HeterogeneousMixture.Null)
|
||||
ContentTexture.Modulate = Color.Color8(0, 0, 0, 0);
|
||||
else
|
||||
{
|
||||
ContentTexture.Modulate = Color.Color8(
|
||||
MainComponent.ColorRed,
|
||||
MainComponent.ColorGreen,
|
||||
MainComponent.ColorBlue,
|
||||
MainComponent.ColorTransparent
|
||||
);
|
||||
}
|
||||
PopupMenu menu = GetPopup();
|
||||
menu.Clear();
|
||||
foreach (var w in menu.GetSignalConnectionList(PopupMenu.SignalName.IdPressed))
|
||||
@@ -55,8 +66,8 @@ public partial class Bottle : MenuButton, IChemicalContainer
|
||||
GlobalScene.MainScene.SwitchToConstructor();
|
||||
return;
|
||||
case 3:
|
||||
ChemicalContent = GlobalScene.Flask.Content;
|
||||
ChemicalContent.Container = this;
|
||||
Content = GlobalScene.Flask.Content;
|
||||
Content.Container = this;
|
||||
GlobalScene.Flask.Content = HeterogeneousMixture.Null;
|
||||
GlobalScene.Flask.Update();
|
||||
return;
|
||||
@@ -71,17 +82,6 @@ public partial class Bottle : MenuButton, IChemicalContainer
|
||||
public override void _Ready()
|
||||
{
|
||||
ContentTexture = GetNode<Sprite2D>("Content");
|
||||
if (ChemicalContent == HeterogeneousMixture.Null)
|
||||
ContentTexture.Modulate = new Color(0, 0, 0, 0);
|
||||
else
|
||||
{
|
||||
ContentTexture.Modulate = new Color(
|
||||
MainComponent.ColorRed,
|
||||
MainComponent.ColorGreen,
|
||||
MainComponent.ColorBlue,
|
||||
MainComponent.ColorTransparent
|
||||
);
|
||||
}
|
||||
BuildMenu();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user