Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
ComponentOuterClothingModel.cs
浏览该文件的文档.
4
5namespace Game {
8
10
11 public override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap) {
12 base.Load(valuesDictionary, idToEntityMap);
13 m_subsystemSky = Project.FindSubsystem<SubsystemSky>(true);
15 m_componentCreature = Entity.FindComponent<ComponentCreature>(true);
16 }
17
18 public override void Animate() {
19 base.Animate();
20 if (Animated) {
21 return;
22 }
24 foreach (ModelBone bone in Model.Bones) {
25 ModelBone modelBone = m_componentHumanModel.Model.FindBone(bone.Name);
26 SetBoneTransform(bone.Index, m_componentHumanModel.GetBoneTransform(modelBone.Index));
27 }
28 if (Opacity.HasValue
29 && Opacity.Value < 1f) {
30 bool num = m_componentCreature.ComponentBody.ImmersionFactor >= 1f;
31 bool flag = m_subsystemSky.ViewUnderWaterDepth > 0f;
32 RenderingMode = num == flag ? ModelRenderingMode.TransparentAfterWater : ModelRenderingMode.TransparentBeforeWater;
33 }
34 else {
35 RenderingMode = ModelRenderingMode.AlphaThreshold;
36 }
37 }
38
39 public override void SetModel(Model model) {
40 base.SetModel(model);
41 if (IsSet) {
42 return;
43 }
44 if (MeshDrawOrders.Length != 4) {
45 throw new InvalidOperationException("Invalid number of meshes in OuterClothing model.");
46 }
47 MeshDrawOrders[0] = model.Meshes.IndexOf(model.FindMesh("Leg1"));
48 MeshDrawOrders[1] = model.Meshes.IndexOf(model.FindMesh("Leg2"));
49 MeshDrawOrders[2] = model.Meshes.IndexOf(model.FindMesh("Body"));
50 MeshDrawOrders[3] = model.Meshes.IndexOf(model.FindMesh("Head"));
51 }
52 }
53}
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMesh > Meshes
virtual void SetBoneTransform(int boneIndex, Matrix? transformation)
virtual ModelRenderingMode RenderingMode
override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap)
ValuesDictionary ValuesDictionary