Skip to content

Commit

Permalink
A file-scoped namespace
Browse files Browse the repository at this point in the history
  • Loading branch information
wixoaGit committed Jan 2, 2024
1 parent 5b0c9bc commit d1bfb10
Showing 1 changed file with 75 additions and 75 deletions.
150 changes: 75 additions & 75 deletions OpenDreamRuntime/Input/MouseInputSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,89 +4,89 @@
using OpenDreamRuntime.Objects.Types;
using OpenDreamShared.Input;

namespace OpenDreamRuntime.Input {
internal sealed class MouseInputSystem : SharedMouseInputSystem {
[Dependency] private readonly AtomManager _atomManager = default!;
[Dependency] private readonly DreamManager _dreamManager = default!;
[Dependency] private readonly IDreamMapManager _mapManager = default!;

public override void Initialize() {
base.Initialize();

SubscribeNetworkEvent<AtomClickedEvent>(OnAtomClicked);
SubscribeNetworkEvent<AtomDraggedEvent>(OnAtomDragged);
SubscribeNetworkEvent<StatClickedEvent>(OnStatClicked);
}
namespace OpenDreamRuntime.Input;

private void OnAtomClicked(AtomClickedEvent e, EntitySessionEventArgs sessionEvent) {
var atom = _atomManager.GetAtom(e.Atom);
if (atom == null)
return;
internal sealed class MouseInputSystem : SharedMouseInputSystem {
[Dependency] private readonly AtomManager _atomManager = default!;
[Dependency] private readonly DreamManager _dreamManager = default!;
[Dependency] private readonly IDreamMapManager _mapManager = default!;

HandleAtomClick(e, atom, sessionEvent);
}
public override void Initialize() {
base.Initialize();

private void OnAtomDragged(AtomDraggedEvent e, EntitySessionEventArgs sessionEvent) {
var src = _atomManager.GetAtom(e.SrcAtom);
if (src == null)
return;

var over = (e.OverAtom != null) ? _atomManager.GetAtom(e.OverAtom.Value) : null;
var session = sessionEvent.SenderSession;
var connection = _dreamManager.GetConnectionBySession(session);
var usr = connection.Mob;
var srcPos = _atomManager.GetAtomPosition(src);

_mapManager.TryGetTurfAt((srcPos.X, srcPos.Y), srcPos.Z, out var srcLoc);

DreamValue overLocValue = DreamValue.Null;
if (over != null) {
var overPos = _atomManager.GetAtomPosition(over);

_mapManager.TryGetTurfAt((overPos.X, overPos.Y), overPos.Z, out var overLoc);
overLocValue = new(overLoc);
}

connection.Client?.SpawnProc("MouseDrop", usr: usr,
new DreamValue(src),
new DreamValue(over),
new DreamValue(srcLoc), // TODO: Location can be a skin element
overLocValue,
DreamValue.Null, // TODO: src_control and over_control
DreamValue.Null,
new DreamValue(ConstructClickParams(e.Params)));
}
SubscribeNetworkEvent<AtomClickedEvent>(OnAtomClicked);
SubscribeNetworkEvent<AtomDraggedEvent>(OnAtomDragged);
SubscribeNetworkEvent<StatClickedEvent>(OnStatClicked);
}

private void OnStatClicked(StatClickedEvent e, EntitySessionEventArgs sessionEvent) {
if (!_dreamManager.LocateRef(e.AtomRef).TryGetValueAsDreamObject<DreamObjectAtom>(out var dreamObject))
return;
private void OnAtomClicked(AtomClickedEvent e, EntitySessionEventArgs sessionEvent) {
var atom = _atomManager.GetAtom(e.Atom);
if (atom == null)
return;

HandleAtomClick(e, dreamObject, sessionEvent);
}
HandleAtomClick(e, atom, sessionEvent);
}

private void HandleAtomClick(IAtomMouseEvent e, DreamObject atom, EntitySessionEventArgs sessionEvent) {
var session = sessionEvent.SenderSession;
var connection = _dreamManager.GetConnectionBySession(session);
var usr = connection.Mob;
private void OnAtomDragged(AtomDraggedEvent e, EntitySessionEventArgs sessionEvent) {
var src = _atomManager.GetAtom(e.SrcAtom);
if (src == null)
return;

connection.Client?.SpawnProc("Click", usr: usr,
new DreamValue(atom),
DreamValue.Null,
DreamValue.Null,
new DreamValue(ConstructClickParams(e.Params)));
}
var over = (e.OverAtom != null) ? _atomManager.GetAtom(e.OverAtom.Value) : null;
var session = sessionEvent.SenderSession;
var connection = _dreamManager.GetConnectionBySession(session);
var usr = connection.Mob;
var srcPos = _atomManager.GetAtomPosition(src);

_mapManager.TryGetTurfAt((srcPos.X, srcPos.Y), srcPos.Z, out var srcLoc);

DreamValue overLocValue = DreamValue.Null;
if (over != null) {
var overPos = _atomManager.GetAtomPosition(over);

private string ConstructClickParams(ClickParams clickParams) {
NameValueCollection paramsBuilder = HttpUtility.ParseQueryString(string.Empty);
if (clickParams.Middle) paramsBuilder.Add("middle", "1");
if (clickParams.Shift) paramsBuilder.Add("shift", "1");
if (clickParams.Ctrl) paramsBuilder.Add("ctrl", "1");
if (clickParams.Alt) paramsBuilder.Add("alt", "1");
paramsBuilder.Add("screen-loc", clickParams.ScreenLoc.ToString());
paramsBuilder.Add("icon-x", clickParams.IconX.ToString());
paramsBuilder.Add("icon-y", clickParams.IconY.ToString());

return paramsBuilder.ToString();
_mapManager.TryGetTurfAt((overPos.X, overPos.Y), overPos.Z, out var overLoc);
overLocValue = new(overLoc);
}

connection.Client?.SpawnProc("MouseDrop", usr: usr,
new DreamValue(src),
new DreamValue(over),
new DreamValue(srcLoc), // TODO: Location can be a skin element
overLocValue,
DreamValue.Null, // TODO: src_control and over_control
DreamValue.Null,
new DreamValue(ConstructClickParams(e.Params)));
}

private void OnStatClicked(StatClickedEvent e, EntitySessionEventArgs sessionEvent) {
if (!_dreamManager.LocateRef(e.AtomRef).TryGetValueAsDreamObject<DreamObjectAtom>(out var dreamObject))
return;

HandleAtomClick(e, dreamObject, sessionEvent);
}

private void HandleAtomClick(IAtomMouseEvent e, DreamObject atom, EntitySessionEventArgs sessionEvent) {
var session = sessionEvent.SenderSession;
var connection = _dreamManager.GetConnectionBySession(session);
var usr = connection.Mob;

connection.Client?.SpawnProc("Click", usr: usr,
new DreamValue(atom),
DreamValue.Null,
DreamValue.Null,
new DreamValue(ConstructClickParams(e.Params)));
}

private string ConstructClickParams(ClickParams clickParams) {
NameValueCollection paramsBuilder = HttpUtility.ParseQueryString(string.Empty);
if (clickParams.Middle) paramsBuilder.Add("middle", "1");
if (clickParams.Shift) paramsBuilder.Add("shift", "1");
if (clickParams.Ctrl) paramsBuilder.Add("ctrl", "1");
if (clickParams.Alt) paramsBuilder.Add("alt", "1");
paramsBuilder.Add("screen-loc", clickParams.ScreenLoc.ToString());
paramsBuilder.Add("icon-x", clickParams.IconX.ToString());
paramsBuilder.Add("icon-y", clickParams.IconY.ToString());

return paramsBuilder.ToString();
}
}

0 comments on commit d1bfb10

Please sign in to comment.