Fix PureResolve

This commit is contained in:
h z
2024-06-25 18:50:48 +08:00
parent 634c503c7c
commit cbe5887f5f
4 changed files with 71 additions and 15 deletions

View File

@@ -35,7 +35,7 @@ public partial class Flask : TextureRect, IChemicalContainer
if (fc.Mixture.HeterogeneousMixture == HeterogeneousMixture.Null) if (fc.Mixture.HeterogeneousMixture == HeterogeneousMixture.Null)
{ {
Map.Remove(fc); Map.Remove(fc);
RemoveChild(fc); InnerLayer.RemoveChild(fc);
} }
} }
} }

View File

@@ -6,7 +6,6 @@ using VirtualChemistry.Chemistry.Mixtures.Implements;
public partial class MainControlPanel : HBoxContainer public partial class MainControlPanel : HBoxContainer
{ {
private HSlider EnvTemperature { get; set; } private HSlider EnvTemperature { get; set; }
private HSlider ContainerVolume { get; set; } private HSlider ContainerVolume { get; set; }
private HomogeneousMixture SelectedMixture { get; set; } private HomogeneousMixture SelectedMixture { get; set; }
private Label Density { get; set; } private Label Density { get; set; }
@@ -14,6 +13,8 @@ public partial class MainControlPanel : HBoxContainer
private Label HeatConductivity { get; set; } private Label HeatConductivity { get; set; }
private Label Amount { get; set; } private Label Amount { get; set; }
private Label Temperature { get; set; } private Label Temperature { get; set; }
private Label FreeVolume { get; set; }
private Label Stiffness { get; set; }
private Tree Compounds { get; set; } private Tree Compounds { get; set; }
// Called when the node enters the scene tree for the first time. // Called when the node enters the scene tree for the first time.
public override void _Ready() public override void _Ready()
@@ -25,16 +26,13 @@ public partial class MainControlPanel : HBoxContainer
HeatConductivity = GetNode<Label>("V2/HHeatConductivity/HeatConductivity"); HeatConductivity = GetNode<Label>("V2/HHeatConductivity/HeatConductivity");
Amount = GetNode<Label>("V2/HAmount/Amount"); Amount = GetNode<Label>("V2/HAmount/Amount");
Temperature = GetNode<Label>("V2/HTemperature/Temperature"); Temperature = GetNode<Label>("V2/HTemperature/Temperature");
FreeVolume = GetNode<Label>("V2/HFreeVolume/FreeVolume");
Stiffness = GetNode<Label>("V2/HStiffnesss/Stiffness");
Compounds = GetNode<Tree>("V3/Compounds"); Compounds = GetNode<Tree>("V3/Compounds");
GlobalScene.MainControlPanel = this; GlobalScene.MainControlPanel = this;
} }
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
}
public void Update(HomogeneousMixture mixture) public void Update(HomogeneousMixture mixture)
{ {
SelectedMixture = mixture; SelectedMixture = mixture;
@@ -50,7 +48,9 @@ public partial class MainControlPanel : HBoxContainer
HeatConductivity.Text = $"{SelectedMixture.HeatConductivity.Get}"; HeatConductivity.Text = $"{SelectedMixture.HeatConductivity.Get}";
Amount.Text = $"{SelectedMixture.Amount}"; Amount.Text = $"{SelectedMixture.Amount}";
Temperature.Text = $"{SelectedMixture.Temperature}"; Temperature.Text = $"{SelectedMixture.Temperature}";
FreeVolume.Text = $"{SelectedMixture.FreeVolume}";
Stiffness.Text = $"{SelectedMixture.CompressionStiffness}";
BuildTree();
} }
private void BuildTree() private void BuildTree()
@@ -79,4 +79,33 @@ public partial class MainControlPanel : HBoxContainer
.GetMeta("isoExp") .GetMeta("isoExp")
.AsString(); .AsString();
} }
private void OneStep()
{
GlobalScene.Flask.Content.OneStep();
GlobalScene.Flask.Update();
}
private void RemoveTop()
{
GlobalScene.Flask.Content.RemoveTop();
GlobalScene.Flask.Update();
}
private void RemoveBottom()
{
GlobalScene.Flask.Content.RemoveBottom();
GlobalScene.Flask.Update();
}
private void SetTemperature(float temp)
{
GlobalScene.Flask.EnvironmentTemperature = temp;
}
private void SetVolume(float vol)
{
GlobalScene.Flask.ContainerVolume = vol;
GlobalScene.Flask.Update();
}
} }

View File

@@ -30,6 +30,9 @@ text = "Env Temperature"
[node name="EnvTemperature" type="HSlider" parent="V1"] [node name="EnvTemperature" type="HSlider" parent="V1"]
layout_mode = 2 layout_mode = 2
max_value = 9.0
step = 0.1
value = 1.0
[node name="Label2" type="Label" parent="V1"] [node name="Label2" type="Label" parent="V1"]
layout_mode = 2 layout_mode = 2
@@ -37,6 +40,10 @@ text = "Container Volume"
[node name="ContainerVolume" type="HSlider" parent="V1"] [node name="ContainerVolume" type="HSlider" parent="V1"]
layout_mode = 2 layout_mode = 2
min_value = 0.2
max_value = 20.0
step = 0.2
value = 1.0
[node name="VSeparator" type="VSeparator" parent="."] [node name="VSeparator" type="VSeparator" parent="."]
layout_mode = 2 layout_mode = 2
@@ -103,6 +110,28 @@ text = "Temperature: "
layout_mode = 2 layout_mode = 2
text = "0" text = "0"
[node name="HFreeVolume" type="HBoxContainer" parent="V2"]
layout_mode = 2
[node name="Label" type="Label" parent="V2/HFreeVolume"]
layout_mode = 2
text = "Free Volums: "
[node name="FreeVolume" type="Label" parent="V2/HFreeVolume"]
layout_mode = 2
text = "0"
[node name="HStiffnesss" type="HBoxContainer" parent="V2"]
layout_mode = 2
[node name="Label" type="Label" parent="V2/HStiffnesss"]
layout_mode = 2
text = "Stiffness: "
[node name="Stiffness" type="Label" parent="V2/HStiffnesss"]
layout_mode = 2
text = "0"
[node name="VSeparator2" type="VSeparator" parent="."] [node name="VSeparator2" type="VSeparator" parent="."]
layout_mode = 2 layout_mode = 2
@@ -120,4 +149,9 @@ layout_mode = 2
[node name="VSeparator4" type="VSeparator" parent="."] [node name="VSeparator4" type="VSeparator" parent="."]
layout_mode = 2 layout_mode = 2
[connection signal="pressed" from="V1/OneStep" to="." method="OneStep"]
[connection signal="pressed" from="V1/RemoveTop" to="." method="RemoveTop"]
[connection signal="pressed" from="V1/RemoveBottom" to="." method="RemoveBottom"]
[connection signal="value_changed" from="V1/EnvTemperature" to="." method="SetTemperature"]
[connection signal="value_changed" from="V1/ContainerVolume" to="." method="SetVolume"]
[connection signal="item_selected" from="V3/Compounds" to="." method="IsomerSelectedHandler"] [connection signal="item_selected" from="V3/Compounds" to="." method="IsomerSelectedHandler"]

View File

@@ -12,12 +12,6 @@ public partial class VirtualChemDemo : Node2D
ExpressionLoader.Visible = true; ExpressionLoader.Visible = true;
} }
public void OneStep()
{
Flask.Content.OneStep();
Flask.Update();
}
// Called when the node enters the scene tree for the first time. // Called when the node enters the scene tree for the first time.
public override void _Ready() public override void _Ready()
{ {
@@ -26,7 +20,6 @@ public partial class VirtualChemDemo : Node2D
FullRepr = GetNode<RichTextLabel>("HRepr/FullRepr"); FullRepr = GetNode<RichTextLabel>("HRepr/FullRepr");
Flask = GetNode<Flask>("Flask"); Flask = GetNode<Flask>("Flask");
GlobalScene.Demo = this; GlobalScene.Demo = this;
} }
// Called every frame. 'delta' is the elapsed time since the previous frame. // Called every frame. 'delta' is the elapsed time since the previous frame.