Skip to content

Commit 2873d22

Browse files
authored
Merge pull request #16 from AbroGames/2.2.0
2.2.1
2 parents 6231f04 + 5d09d8e commit 2873d22

4 files changed

Lines changed: 27 additions & 21 deletions

File tree

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
using Godot;
2-
using KludgeBox.DI.Requests.LoggerInjection;
32
using KludgeBox.Godot.Nodes.MpSync;
43
using KludgeBox.Reflection.Access;
5-
using Serilog;
64

75
namespace KludgeBox.DI.Requests.MpSyncInjection;
86

@@ -11,8 +9,6 @@ public class MpSyncInjectionRequest : IProcessingRequest
119
public static readonly string MpSyncNodeName = "MultiplayerSynchronizer";
1210

1311
private readonly IMemberAccessor _memberAccessor;
14-
15-
[Logger] private ILogger _log;
1612

1713
public MpSyncInjectionRequest(IMemberAccessor memberAccessor)
1814
{
@@ -25,26 +21,12 @@ public void ProcessOnInstance(object instance)
2521
{
2622
if (instance is Node node)
2723
{
28-
if (!_memberAccessor.HasAttribute(typeof(ExportAttribute)))
29-
{
30-
_log.Error("Member has Sync attribute, but doesn't have Export attribute: {type}.{member}.",
31-
_memberAccessor.Member.ReflectedType?.FullName,
32-
_memberAccessor.Member.Name);
33-
return;
34-
}
35-
3624
var mpSync = node.GetNodeOrNull<AttributeMultiplayerSynchronizer>(MpSyncNodeName);
3725
if (mpSync == null)
3826
{
3927
mpSync = new AttributeMultiplayerSynchronizer(node);
4028
node.AddChildWithName(mpSync, MpSyncNodeName);
4129
}
4230
}
43-
else
44-
{
45-
_log.Error("Sync attribute at not Node class: {type}.{member}.",
46-
_memberAccessor.Member.ReflectedType?.FullName,
47-
_memberAccessor.Member.Name);
48-
}
4931
}
5032
}

KludgeBox/DI/Requests/MpSyncInjection/MpSyncInjectionRequestScanner.cs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,41 @@
1-
using KludgeBox.Godot.Nodes.MpSync;
1+
using Godot;
2+
using KludgeBox.Godot.Nodes.MpSync;
3+
using KludgeBox.Logging;
24
using KludgeBox.Reflection.Access;
5+
using Serilog;
36

47
namespace KludgeBox.DI.Requests.MpSyncInjection;
58

69
public class MpSyncInjectionRequestScanner : IProcessingRequestScanner
710
{
11+
12+
private readonly ILogger _log = LogFactory.GetForStatic<MpSyncInjectionRequestScanner>();
13+
814
public bool TryGetRequest(IMemberAccessor accessor, out IProcessingRequest injectionRequest)
915
{
1016
if (!accessor.TryGetAttribute<SyncAttribute>(out _))
1117
{
1218
injectionRequest = null;
1319
return false;
1420
}
21+
22+
if (!accessor.HasAttribute(typeof(ExportAttribute)))
23+
{
24+
_log.Error("Member has Sync attribute, but doesn't have Export attribute: {type}.{member}.",
25+
accessor.Member.ReflectedType?.FullName,
26+
accessor.Member.Name);
27+
injectionRequest = null;
28+
return false;
29+
}
30+
31+
if (accessor.Member.DeclaringType == null || !accessor.Member.DeclaringType.IsAssignableTo(typeof(Node)))
32+
{
33+
_log.Error("Sync attribute at not Node class: {type}.{member}.",
34+
accessor.Member.ReflectedType?.FullName,
35+
accessor.Member.Name);
36+
injectionRequest = null;
37+
return false;
38+
}
1539

1640
injectionRequest = new MpSyncInjectionRequest(accessor);
1741
return true;

KludgeBox/Godot/Services/NodeTreeService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace KludgeBox.Godot.Services;
1010
public class NodeTreeService
1111
{
1212

13-
[Logger] ILogger _log;
13+
[Logger] private ILogger _log;
1414

1515
public NodeTreeService()
1616
{

KludgeBox/KludgeBox.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
Minor - добавление новх фич, запланированое плавное устаревание API
99
Patch - небольшие фиксы и незначительный функционал
1010
-->
11-
<GeneralVersion>2.2.0</GeneralVersion>
11+
<GeneralVersion>2.2.1</GeneralVersion>
1212

1313
<!--
1414
Пререлизный тег, на случай, когда надо зарелизить что-то, что не должно попасть в релиз

0 commit comments

Comments
 (0)