Survivalcraft API 1.8.2.3
v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
SmeltingRecipeWidget.cs
浏览该文件的文档.
1
using
System.Xml.Linq;
2
using
Engine
;
3
4
namespace
Game
{
5
public
class
SmeltingRecipeWidget
:
CanvasWidget
{
6
public
LabelWidget
m_nameWidget
;
7
8
public
LabelWidget
m_descriptionWidget
;
9
10
public
GridPanelWidget
m_gridWidget
;
11
12
public
FireWidget
m_fireWidget
;
13
14
public
CraftingRecipeSlotWidget
m_resultWidget
;
15
16
public
CraftingRecipe
m_recipe
;
17
18
public
string
m_nameSuffix
;
19
20
public
bool
m_dirty
=
true
;
21
22
public
string
NameSuffix
{
23
get
=>
m_nameSuffix
;
24
set
{
25
if
(value !=
m_nameSuffix
) {
26
m_nameSuffix
= value;
27
m_dirty
=
true
;
28
}
29
}
30
}
31
32
public
CraftingRecipe
Recipe
{
33
get
=>
m_recipe
;
34
set
{
35
if
(value !=
m_recipe
) {
36
m_recipe
= value;
37
m_dirty
=
true
;
38
}
39
}
40
}
41
42
public
SmeltingRecipeWidget
() {
43
XElement node =
ContentManager
.
Get
<XElement>(
"Widgets/SmeltingRecipe"
);
44
LoadContents
(
this
, node);
45
m_nameWidget
=
Children
.Find<
LabelWidget
>(
"SmeltingRecipeWidget.Name"
);
46
m_descriptionWidget
=
Children
.Find<
LabelWidget
>(
"SmeltingRecipeWidget.Description"
);
47
m_gridWidget
=
Children
.Find<
GridPanelWidget
>(
"SmeltingRecipeWidget.Ingredients"
);
48
m_fireWidget
=
Children
.Find<
FireWidget
>(
"SmeltingRecipeWidget.Fire"
);
49
m_resultWidget
=
Children
.Find<
CraftingRecipeSlotWidget
>(
"SmeltingRecipeWidget.Result"
);
50
for
(
int
i = 0; i <
m_gridWidget
.RowsCount; i++) {
51
for
(
int
j = 0; j <
m_gridWidget
.ColumnsCount; j++) {
52
CraftingRecipeSlotWidget
widget =
new
();
53
m_gridWidget
.Children.Add(widget);
54
m_gridWidget
.SetWidgetCell(widget,
new
Point2
(j, i));
55
}
56
}
57
}
58
59
public
override
void
MeasureOverride
(
Vector2
parentAvailableSize) {
60
if
(
m_dirty
) {
61
UpdateWidgets
();
62
}
63
base.MeasureOverride(parentAvailableSize);
64
}
65
66
public
virtual
void
UpdateWidgets
() {
67
m_dirty
=
false
;
68
if
(
m_recipe
!=
null
) {
69
Block
block =
BlocksManager
.
Blocks
[
Terrain
.
ExtractContents
(
m_recipe
.ResultValue)];
70
m_nameWidget.Text = block.
GetDisplayName
(
null
,
m_recipe
.ResultValue)
71
+ (!
string
.IsNullOrEmpty(
NameSuffix
) ?
NameSuffix
:
string
.Empty);
72
m_descriptionWidget.Text =
m_recipe
.Description;
73
m_nameWidget.IsVisible =
true
;
74
m_descriptionWidget.IsVisible =
true
;
75
foreach
(
Widget
widget
in
m_gridWidget
.Children) {
76
if
(widget is
CraftingRecipeSlotWidget
child) {
77
Point2
widgetCell =
m_gridWidget
.GetWidgetCell(child);
78
child.SetIngredient(
m_recipe
.Ingredients[widgetCell.
X
+ widgetCell.
Y
* 3]);
79
}
80
}
81
m_resultWidget
.SetResult(
m_recipe
.ResultValue,
m_recipe
.ResultCount);
82
m_fireWidget.ParticlesPerSecond = 40f;
83
}
84
else
{
85
m_nameWidget.IsVisible =
false
;
86
m_descriptionWidget.IsVisible =
false
;
87
foreach
(
Widget
widget
in
m_gridWidget
.Children) {
88
(widget as
CraftingRecipeSlotWidget
)?.SetIngredient(
null
);
89
}
90
m_resultWidget
.SetResult(0, 0);
91
m_fireWidget.ParticlesPerSecond = 0f;
92
}
93
}
94
}
95
}
Game.Block
定义
Block.cs:5
Game.Block.GetDisplayName
virtual string GetDisplayName(SubsystemTerrain subsystemTerrain, int value)
定义
Block.cs:233
Game.BlocksManager
定义
BlocksManager.cs:10
Game.BlocksManager.Blocks
static Block[] Blocks
定义
BlocksManager.cs:41
Game.CanvasWidget
定义
CanvasWidget.cs:4
Game.ContainerWidget.Children
readonly WidgetsList Children
定义
ContainerWidget.cs:5
Game.ContentManager
定义
ContentManager.cs:50
Game.ContentManager.Get
static object Get(Type type, string name)
定义
ContentManager.cs:70
Game.CraftingRecipe
定义
CraftingRecipe.cs:2
Game.CraftingRecipeSlotWidget
定义
CraftingRecipeSlotWidget.cs:5
Game.FireWidget
定义
FireWidget.cs:4
Game.GridPanelWidget
定义
GridPanelWidget.cs:4
Game.LabelWidget
定义
LabelWidget.cs:4
Game.SmeltingRecipeWidget.NameSuffix
string NameSuffix
定义
SmeltingRecipeWidget.cs:22
Game.SmeltingRecipeWidget.m_dirty
bool m_dirty
定义
SmeltingRecipeWidget.cs:20
Game.SmeltingRecipeWidget.m_nameSuffix
string m_nameSuffix
定义
SmeltingRecipeWidget.cs:18
Game.SmeltingRecipeWidget.m_gridWidget
GridPanelWidget m_gridWidget
定义
SmeltingRecipeWidget.cs:10
Game.SmeltingRecipeWidget.SmeltingRecipeWidget
SmeltingRecipeWidget()
定义
SmeltingRecipeWidget.cs:42
Game.SmeltingRecipeWidget.m_resultWidget
CraftingRecipeSlotWidget m_resultWidget
定义
SmeltingRecipeWidget.cs:14
Game.SmeltingRecipeWidget.m_descriptionWidget
LabelWidget m_descriptionWidget
定义
SmeltingRecipeWidget.cs:8
Game.SmeltingRecipeWidget.m_recipe
CraftingRecipe m_recipe
定义
SmeltingRecipeWidget.cs:16
Game.SmeltingRecipeWidget.MeasureOverride
override void MeasureOverride(Vector2 parentAvailableSize)
定义
SmeltingRecipeWidget.cs:59
Game.SmeltingRecipeWidget.UpdateWidgets
virtual void UpdateWidgets()
定义
SmeltingRecipeWidget.cs:66
Game.SmeltingRecipeWidget.Recipe
CraftingRecipe Recipe
定义
SmeltingRecipeWidget.cs:32
Game.SmeltingRecipeWidget.m_fireWidget
FireWidget m_fireWidget
定义
SmeltingRecipeWidget.cs:12
Game.SmeltingRecipeWidget.m_nameWidget
LabelWidget m_nameWidget
定义
SmeltingRecipeWidget.cs:6
Game.Terrain
定义
Terrain.cs:5
Game.Terrain.ExtractContents
static int ExtractContents(int value)
定义
Terrain.cs:303
Game.Widget
定义
Widget.cs:10
Game.Widget.LoadContents
virtual void LoadContents(object eventsTarget, XElement node)
定义
Widget.cs:507
Engine
定义
BaseSound.cs:10
Game
定义
ContentFileBridge.cs:4
Engine.Point2
定义
Point2.cs:2
Engine.Point2.Y
int Y
定义
Point2.cs:5
Engine.Point2.X
int X
定义
Point2.cs:3
Engine.Vector2
定义
Vector2.cs:2
SurvivalcraftApi 1.8.2.3
Survivalcraft.Windows
Widget
SmeltingRecipeWidget.cs
制作者
1.16.1