Skip to content

Commit d9ee568

Browse files
committed
update to 1.1.4
1 parent b977d3a commit d9ee568

File tree

115 files changed

+3273
-1017
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+3273
-1017
lines changed

.editorconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[*.cs]
2+
3+
# CS0612: Type or member is obsolete
4+
dotnet_diagnostic.CS0612.severity = none
5+
6+
# CS0618: Type or member is obsolete
7+
dotnet_diagnostic.CS0618.severity = none
8+
9+
# MsgPack015: MessagePackObjectAttribute.AllowPrivate should be set
10+
dotnet_diagnostic.MsgPack015.severity = none

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
.vs/
22
obj/
33
bin/
4-
*.user
4+
*.user
5+
Ignore/*

Subnautica.Core/Subnautica.API/Extensions/BaseGhostExtensions.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddFaceGhost
7474
return null;
7575
}
7676

77-
var face = Network.Temporary.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceStart");
77+
var face = Network.DataStorage.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceStart");
7878

7979
return new BaseAddFaceGhostComponent()
8080
{
@@ -94,8 +94,8 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddLadderGho
9494
return null;
9595
}
9696

97-
var faceStart = Network.Temporary.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceStart");
98-
var faceEnd = Network.Temporary.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceEnd");
97+
var faceStart = Network.DataStorage.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceStart");
98+
var faceEnd = Network.DataStorage.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceEnd");
9999

100100
return new BaseAddLadderGhostComponent()
101101
{
@@ -120,7 +120,7 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddBulkheadG
120120
return null;
121121
}
122122

123-
var face = Network.Temporary.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceStart");
123+
var face = Network.DataStorage.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceStart");
124124

125125
return new BaseAddBulkheadGhostComponent()
126126
{
@@ -140,8 +140,8 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddPartition
140140
return null;
141141
}
142142

143-
var faceCell = Network.Temporary.GetProperty<Int3>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceCell");
144-
var direction = Network.Temporary.GetProperty<global::Base.Direction>(baseGhost.targetBase.gameObject.GetIdentityId(), "Direction");
143+
var faceCell = Network.DataStorage.GetProperty<Int3>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceCell");
144+
var direction = Network.DataStorage.GetProperty<global::Base.Direction>(baseGhost.targetBase.gameObject.GetIdentityId(), "Direction");
145145

146146
return new BaseAddPartitionGhostComponent()
147147
{
@@ -161,8 +161,8 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddPartition
161161
return null;
162162
}
163163

164-
var faceCell = Network.Temporary.GetProperty<Int3>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceCell");
165-
var direction = Network.Temporary.GetProperty<global::Base.Direction>(baseGhost.targetBase.gameObject.GetIdentityId(), "Direction");
164+
var faceCell = Network.DataStorage.GetProperty<Int3>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceCell");
165+
var direction = Network.DataStorage.GetProperty<global::Base.Direction>(baseGhost.targetBase.gameObject.GetIdentityId(), "Direction");
166166

167167
return new BaseAddPartitionDoorGhostComponent()
168168
{
@@ -182,7 +182,7 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddModuleGho
182182
return null;
183183
}
184184

185-
var face = Network.Temporary.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceStart");
185+
var face = Network.DataStorage.GetProperty<global::Base.Face>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceStart");
186186

187187
return new BaseAddModuleGhostComponent()
188188
{
@@ -197,7 +197,7 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddModuleGho
197197

198198
public static BaseGhostComponent GetGhostComponent(this global::BaseAddCellGhost baseGhost)
199199
{
200-
var targetOffset = Network.Temporary.GetProperty<Int3>(baseGhost.gameObject.GetIdentityId(), "TargetOffset");
200+
var targetOffset = Network.DataStorage.GetProperty<Int3>(baseGhost.gameObject.GetIdentityId(), "TargetOffset");
201201

202202
return new BaseAddCellGhostComponent()
203203
{
@@ -210,7 +210,7 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddCellGhost
210210

211211
public static BaseGhostComponent GetGhostComponent(this global::BaseAddCorridorGhost baseGhost)
212212
{
213-
var targetOffset = Network.Temporary.GetProperty<Int3>(baseGhost.gameObject.GetIdentityId(), "TargetOffset");
213+
var targetOffset = Network.DataStorage.GetProperty<Int3>(baseGhost.gameObject.GetIdentityId(), "TargetOffset");
214214

215215
return new BaseAddCorridorGhostComponent()
216216
{
@@ -221,7 +221,7 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddCorridorG
221221

222222
public static BaseGhostComponent GetGhostComponent(this global::BaseAddMapRoomGhost baseGhost)
223223
{
224-
var targetOffset = Network.Temporary.GetProperty<Int3>(baseGhost.gameObject.GetIdentityId(), "TargetOffset");
224+
var targetOffset = Network.DataStorage.GetProperty<Int3>(baseGhost.gameObject.GetIdentityId(), "TargetOffset");
225225

226226
return new BaseAddMapRoomGhostComponent()
227227
{
@@ -237,7 +237,7 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddConnector
237237
return null;
238238
}
239239

240-
var faceCell = Network.Temporary.GetProperty<Int3>(baseGhost.targetBase.gameObject.GetIdentityId(), "Cell");
240+
var faceCell = Network.DataStorage.GetProperty<Int3>(baseGhost.targetBase.gameObject.GetIdentityId(), "Cell");
241241

242242
return new BaseAddConnectorGhostComponent()
243243
{
@@ -253,8 +253,8 @@ public static BaseGhostComponent GetGhostComponent(this global::BaseAddWaterPark
253253
return null;
254254
}
255255

256-
var faceCell = Network.Temporary.GetProperty<Int3>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceCell");
257-
var direction = Network.Temporary.GetProperty<global::Base.Direction>(baseGhost.targetBase.gameObject.GetIdentityId(), "Direction");
256+
var faceCell = Network.DataStorage.GetProperty<Int3>(baseGhost.targetBase.gameObject.GetIdentityId(), "FaceCell");
257+
var direction = Network.DataStorage.GetProperty<global::Base.Direction>(baseGhost.targetBase.gameObject.GetIdentityId(), "Direction");
258258

259259
return new BaseAddWaterParkGhostComponent()
260260
{

Subnautica.Core/Subnautica.API/Extensions/GameExtensions.cs

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,15 @@ public static WorldEntityModel.Hoverbike ToHoverbikeComponent(this global::Hover
9292
};
9393
}
9494

95+
public static WorldEntityModel.WaterParkCreature ToWaterParkCreatureComponent(this Pickupable pickupable)
96+
{
97+
global::WaterParkCreature waterParkCreature;
98+
return new WorldEntityModel.WaterParkCreature
99+
{
100+
AddedTime = (pickupable.TryGetComponent<global::WaterParkCreature>(out waterParkCreature) ? (Network.Session.GetWorldTime() - (double)(waterParkCreature.data.growingPeriod * waterParkCreature.age)) : 0.0)
101+
};
102+
}
103+
95104
public static WorldEntityModel.MapRoomCamera ToMapRoomCameraComponent(this global::Pickupable pickupable)
96105
{
97106
return new WorldEntityModel.MapRoomCamera()
@@ -454,5 +463,62 @@ public static void EnableMovement(this global::Player player)
454463
{
455464
FPSInputModule.current.lockMovement = false;
456465
}
466+
467+
public static KeyValuePair<string, KeyValuePair<TechType, bool>> GetDetail(this Planter basePlanter)
468+
{
469+
bool flag = basePlanter.constructable;
470+
KeyValuePair<string, KeyValuePair<TechType, bool>> keyValuePair;
471+
if (flag)
472+
{
473+
keyValuePair = new KeyValuePair<string, KeyValuePair<TechType, bool>>(basePlanter.constructable.gameObject.GetIdentityId(false), new KeyValuePair<TechType, bool>(basePlanter.constructable.techType, true));
474+
}
475+
else
476+
{
477+
WaterPark componentInParent = basePlanter.GetComponentInParent<WaterPark>();
478+
LargeRoomWaterPark largeRoomWaterPark = componentInParent as LargeRoomWaterPark;
479+
bool flag2 = largeRoomWaterPark != null;
480+
if (flag2)
481+
{
482+
LargeRoomWaterParkPlanter componentInParent2 = basePlanter.GetComponentInParent<LargeRoomWaterParkPlanter>();
483+
bool flag3 = componentInParent2;
484+
if (flag3)
485+
{
486+
BaseDeconstructable baseDeconstructable = componentInParent.GetBaseDeconstructable();
487+
string text;
488+
if (baseDeconstructable == null)
489+
{
490+
text = null;
491+
}
492+
else
493+
{
494+
GameObject gameObject = baseDeconstructable.gameObject;
495+
text = ((gameObject != null) ? gameObject.GetIdentityId(false) : null);
496+
}
497+
return new KeyValuePair<string, KeyValuePair<TechType, bool>>(text, new KeyValuePair<TechType, bool>(TechType.BaseWaterPark, componentInParent2.leftPlanter == basePlanter));
498+
}
499+
}
500+
else
501+
{
502+
bool flag4 = componentInParent;
503+
if (flag4)
504+
{
505+
BaseDeconstructable baseDeconstructable2 = componentInParent.GetBaseDeconstructable();
506+
string text2;
507+
if (baseDeconstructable2 == null)
508+
{
509+
text2 = null;
510+
}
511+
else
512+
{
513+
GameObject gameObject2 = baseDeconstructable2.gameObject;
514+
text2 = ((gameObject2 != null) ? gameObject2.GetIdentityId(false) : null);
515+
}
516+
return new KeyValuePair<string, KeyValuePair<TechType, bool>>(text2, new KeyValuePair<TechType, bool>(TechType.BaseWaterPark, true));
517+
}
518+
}
519+
keyValuePair = default(KeyValuePair<string, KeyValuePair<TechType, bool>>);
520+
}
521+
return keyValuePair;
522+
}
457523
}
458524
}

Subnautica.Core/Subnautica.API/Extensions/TechExtensions.cs

Lines changed: 64 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,12 @@ public static string GetTechName(this TechType techType)
111111
return techType.AsString();
112112
}
113113

114+
public static bool IsCosmeticItem(this TechType techType)
115+
{
116+
bool flag = techType.IsPoster() || techType.IsPictureFrame();
117+
return flag || techType - TechType.LabContainer <= 2 || techType == TechType.FredShavingKit || techType == TechType.SamNecklace;
118+
}
119+
114120
public static bool IsPoster(this TechType techType)
115121
{
116122
switch (techType)
@@ -340,10 +346,11 @@ public static bool IsCreatureEgg(this TechType techType)
340346
case TechType.ShockerEgg:
341347
case TechType.ShockerEggUndiscovered:
342348
case TechType.GenericEgg:
343-
case TechType.CutefishEggUndiscovered:
344-
case TechType.SeaMonkeyEgg:
345349
case TechType.CrashEgg:
346350
case TechType.CrashEggUndiscovered:
351+
case TechType.CutefishEgg:
352+
case TechType.CutefishEggUndiscovered:
353+
case TechType.SeaMonkeyEgg:
347354
case TechType.ArcticRayEgg:
348355
case TechType.ArcticRayEggUndiscovered:
349356
case TechType.BruteSharkEgg:
@@ -383,27 +390,12 @@ public static TechType ToCreatureEgg(this TechType techType)
383390
{
384391
switch (techType)
385392
{
386-
case TechType.ShockerEggUndiscovered: return TechType.ShockerEgg;
387-
case TechType.ArcticRayEggUndiscovered: return TechType.ArcticRayEgg;
388-
case TechType.BruteSharkEggUndiscovered: return TechType.BruteSharkEgg;
389-
case TechType.LilyPaddlerEggUndiscovered: return TechType.LilyPaddlerEgg;
390-
case TechType.PinnacaridEggUndiscovered: return TechType.PinnacaridEgg;
391-
case TechType.SquidSharkEggUndiscovered: return TechType.SquidSharkEgg;
392-
case TechType.TitanHolefishEggUndiscovered: return TechType.TitanHolefishEgg;
393-
case TechType.TrivalveBlueEggUndiscovered: return TechType.TrivalveBlueEgg;
394-
case TechType.TrivalveYellowEggUndiscovered: return TechType.TrivalveYellowEgg;
395-
case TechType.BrinewingEggUndiscovered: return TechType.BrinewingEgg;
396-
case TechType.CryptosuchusEggUndiscovered: return TechType.CryptosuchusEgg;
397-
case TechType.GlowWhaleEggUndiscovered: return TechType.GlowWhaleEgg;
398-
case TechType.JellyfishEggUndiscovered: return TechType.JellyfishEgg;
399-
case TechType.PenguinEggUndiscovered: return TechType.PenguinEgg;
400-
case TechType.RockPuncherEggUndiscovered: return TechType.RockPuncherEgg;
401-
402-
case TechType.PrecursorLostRiverLabEgg:
403-
case TechType.SeaMonkeyEgg:
404-
case TechType.GenericEgg:
405393
case TechType.LavaZoneEgg:
406394
case TechType.ShockerEgg:
395+
case TechType.GenericEgg:
396+
case TechType.CrashEgg:
397+
case TechType.CutefishEgg:
398+
case TechType.SeaMonkeyEgg:
407399
case TechType.ArcticRayEgg:
408400
case TechType.BruteSharkEgg:
409401
case TechType.LilyPaddlerEgg:
@@ -418,10 +410,59 @@ public static TechType ToCreatureEgg(this TechType techType)
418410
case TechType.JellyfishEgg:
419411
case TechType.PenguinEgg:
420412
case TechType.RockPuncherEgg:
413+
case TechType.PrecursorLostRiverLabEgg:
421414
return techType;
415+
case TechType.ShockerEggUndiscovered:
416+
return TechType.ShockerEgg;
417+
case TechType.CrashEggUndiscovered:
418+
return TechType.CrashEgg;
419+
case TechType.ArcticRayEggUndiscovered:
420+
return TechType.ArcticRayEgg;
421+
case TechType.BruteSharkEggUndiscovered:
422+
return TechType.BruteSharkEgg;
423+
case TechType.LilyPaddlerEggUndiscovered:
424+
return TechType.LilyPaddlerEgg;
425+
case TechType.PinnacaridEggUndiscovered:
426+
return TechType.PinnacaridEgg;
427+
case TechType.SquidSharkEggUndiscovered:
428+
return TechType.SquidSharkEgg;
429+
case TechType.TitanHolefishEggUndiscovered:
430+
return TechType.TitanHolefishEgg;
431+
case TechType.TrivalveBlueEggUndiscovered:
432+
return TechType.TrivalveBlueEgg;
433+
case TechType.TrivalveYellowEggUndiscovered:
434+
return TechType.TrivalveYellowEgg;
435+
case TechType.BrinewingEggUndiscovered:
436+
return TechType.BrinewingEgg;
437+
case TechType.CryptosuchusEggUndiscovered:
438+
return TechType.CryptosuchusEgg;
439+
case TechType.GlowWhaleEggUndiscovered:
440+
return TechType.GlowWhaleEgg;
441+
case TechType.JellyfishEggUndiscovered:
442+
return TechType.JellyfishEgg;
443+
case TechType.PenguinEggUndiscovered:
444+
return TechType.PenguinEgg;
445+
case TechType.RockPuncherEggUndiscovered:
446+
return TechType.RockPuncherEgg;
447+
case TechType.Crash:
448+
return TechType.CrashEgg;
449+
case TechType.GlowWhale:
450+
return TechType.GlowWhaleEgg;
451+
case TechType.LilyPaddler:
452+
return TechType.LilyPaddlerEgg;
453+
case TechType.ArcticRay:
454+
return TechType.ArcticRayEgg;
455+
case TechType.TitanHolefish:
456+
return TechType.TitanHolefishEgg;
457+
case TechType.BruteShark:
458+
return TechType.BruteSharkEgg;
459+
case TechType.Jellyfish:
460+
return TechType.JellyfishEgg;
461+
case TechType.Cryptosuchus:
462+
return TechType.CryptosuchusEgg;
463+
default:
464+
return TechType.None;
422465
}
423-
424-
return TechType.None;
425466
}
426467

427468
public static bool IsCreature(this TechType techType, bool ignoreSchool = false)

Subnautica.Core/Subnautica.API/Features/CreatureData.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
namespace Subnautica.API.Features
22
{
33
using Subnautica.API.Features.Creatures.Datas;
4-
4+
using Subnautica.API.Features.Creatures.Datas.Eggs;
55
using System.Collections.Generic;
66

77
public class CreatureData
@@ -40,6 +40,13 @@ public CreatureData()
4040
this.Register(new CryptosuchusData());
4141

4242
this.Register(new GlowWhaleEggData());
43+
this.Register(new ArcticRayEggData());
44+
this.Register(new TitanHolefishEggData());
45+
this.Register(new BruteSharkEggData());
46+
this.Register(new CryptosuchusEggData());
47+
this.Register(new JellyfishEggData());
48+
this.Register(new LilyPaddlerEggData());
49+
this.Register(new CrashEggData());
4350
}
4451

4552
public bool IsExists(TechType type)

Subnautica.Core/Subnautica.API/Features/Creatures/Datas/BaseCreatureData.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public virtual GameObject OnCustomCreatureSpawn()
5555
return null;
5656
}
5757

58-
public virtual bool OnKill(GameObject gameObject)
58+
public virtual bool OnKill(MultiplayerCreature oldCreature, MultiplayerCreature creature)
5959
{
6060
return true;
6161
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace Subnautica.API.Features.Creatures.Datas;
2+
3+
public class BrinewingData : BaseCreatureData
4+
{
5+
public override TechType CreatureType { get; set; } = TechType.Brinewing;
6+
7+
public override bool IsCanBeAttacked { get; set; } = true;
8+
9+
public override float Health { get; set; } = 100f;
10+
11+
public override float VisibilityDistance { get; set; } = 65f;
12+
13+
public override float VisibilityLongDistance { get; set; } = 80f;
14+
15+
public override float StayAtLeashPositionWhenPassive { get; set; } = 60f;
16+
17+
public override bool IsRespawnable { get; set; } = true;
18+
19+
public override int RespawnTimeMin { get; set; } = 300;
20+
21+
public override int RespawnTimeMax { get; set; } = 300;
22+
23+
public override void OnRegisterMonoBehaviours(MultiplayerCreature creature)
24+
{
25+
base.OnRegisterMonoBehaviours(creature);
26+
}
27+
}

0 commit comments

Comments
 (0)