Add wire info

This commit is contained in:
Norbi Peti 2021-08-12 03:30:39 +02:00
parent 3e309a4e4c
commit 72a447cc0e
2 changed files with 25 additions and 12 deletions

View file

@ -262,7 +262,7 @@ namespace BuildingTools
private static string GetBlockInfoInBuildMode() private static string GetBlockInfoInBuildMode()
{ {
var block = Player.LocalPlayer.GetBlockLookedAt(); var block = Player.LocalPlayer.GetBlockLookedAt();
if (block == null) return ""; if (block == null) return GetWireInfoInBuildMode();
float3 pos = block.Position; float3 pos = block.Position;
float3 rot = block.Rotation; float3 rot = block.Rotation;
float3 scale = block.Scale; float3 scale = block.Scale;
@ -275,6 +275,24 @@ namespace BuildingTools
$"- Group: {block.BlockGroup.Id}"; $"- Group: {block.BlockGroup.Id}";
} }
private static string GetWireInfoInBuildMode()
{
var wire = Player.LocalPlayer.GetWireLookedAt();
if (wire == null) return "";
var startPos = wire.Start.Position;
var endPos = wire.End.Position;
Console.WriteLine("Start port: " + wire.StartPort + " End port: " + wire.EndPort);
Console.WriteLine("Start block: " + wire.Start);
Console.WriteLine("End block: " + wire.End);
string startName = wire.StartPort != byte.MaxValue ? wire.Start.OutputPortName(wire.StartPort) : "no port";
string endName = wire.EndPort != byte.MaxValue ? wire.End.InputPortName(wire.EndPort) : "no port";
return $"Wire with {wire.Id}\n" +
$"- From block {wire.Start.Type} at {startPos.x:F} {startPos.y:F} {startPos.z:F}\n" +
$"- at port {startName}\n" +
$"- To block {wire.End.Type} at {endPos.x:F} {endPos.y:F} {endPos.z:F}\n" +
$"- at port {endName}";
}
private static string GetBodyInfoInSimMode() private static string GetBodyInfoInSimMode()
{ {
var body = Player.LocalPlayer.GetSimBodyLookedAt(); var body = Player.LocalPlayer.GetSimBodyLookedAt();

View file

@ -1,6 +1,7 @@
using System; using System;
using System.Reflection; using System.Reflection;
using HarmonyLib; using HarmonyLib;
using TechbloxModdingAPI.Utility;
using UnityEngine; using UnityEngine;
namespace BuildingTools namespace BuildingTools
@ -11,10 +12,11 @@ namespace BuildingTools
public void Toggle() public void Toggle()
{ {
Console.WriteLine("Toggling no garage"); Logging.CommandLog("Toggling no garage");
// ReSharper disable once AssignmentInConditionalExpression
if(_enabled = !_enabled) if(_enabled = !_enabled)
Enable(); Enable();
Console.WriteLine($"{(_enabled ? "Enabled" : "Disabled")} no garage"); Logging.CommandLog($"{(_enabled ? "Enabled" : "Disabled")} no garage");
} }
private void Enable() private void Enable()
@ -23,13 +25,7 @@ namespace BuildingTools
var simObj = (GameObject)AccessTools.Field(type, var simObj = (GameObject)AccessTools.Field(type,
"THIS_IS_TEMPORARY_CODE_IT_IS_GOING_TO_BE_DELETED_ONCE_WE_HAVE_THE_FINAL_WORLD_SWITCHING_sim_go") "THIS_IS_TEMPORARY_CODE_IT_IS_GOING_TO_BE_DELETED_ONCE_WE_HAVE_THE_FINAL_WORLD_SWITCHING_sim_go")
.GetValue(null); .GetValue(null);
/*var buildObjField = AccessTools.Field(type,
"THIS_IS_TEMPORARY_CODE_IT_IS_GOING_TO_BE_DELETED_ONCE_WE_HAVE_THE_FINAL_WORLD_SWITCHING_build_go");
var buildObj = (GameObject) buildObjField.GetValue(null);
Console.WriteLine($"obj: {simObj}");*/
var componentType = AccessTools.TypeByName("Techblox.Garage.GarageMachineBoundaryImplementor"); var componentType = AccessTools.TypeByName("Techblox.Garage.GarageMachineBoundaryImplementor");
//var component = buildObj.GetComponent(componentType);
//var newBuildObj = Object.Instantiate(simObj);
simObj.AddComponent(componentType); simObj.AddComponent(componentType);
var component = simObj.GetComponent(componentType); var component = simObj.GetComponent(componentType);
AccessTools.Field(componentType, "_bounds") AccessTools.Field(componentType, "_bounds")
@ -38,7 +34,6 @@ namespace BuildingTools
.SetValue(component, 1f); .SetValue(component, 1f);
AccessTools.Field(componentType, "_cameraLookPointDistance") AccessTools.Field(componentType, "_cameraLookPointDistance")
.SetValue(component, 1f); .SetValue(component, 1f);
//buildObjField.SetValue(null, newBuildObj);
} }
[HarmonyPatch] [HarmonyPatch]
@ -47,10 +42,10 @@ namespace BuildingTools
public static bool Prefix(object __instance) public static bool Prefix(object __instance)
{ {
if (!_enabled) return true; if (!_enabled) return true;
Console.WriteLine("Got a time stopped init event"); Logging.MetaDebugLog("Got a time stopped init event");
AccessTools.Method("Techblox.Environment.Temporary.EnvironmentSwitchEngine:OnTimeRunningInitializationComplete") AccessTools.Method("Techblox.Environment.Temporary.EnvironmentSwitchEngine:OnTimeRunningInitializationComplete")
.Invoke(__instance, Array.Empty<object>()); .Invoke(__instance, Array.Empty<object>());
Console.WriteLine("Successfully called time running init event"); Logging.MetaDebugLog("Successfully called time running init event");
return false; return false;
} }