Skip to content

Commit

Permalink
Merge pull request #125 from ZiwKerman/develop
Browse files Browse the repository at this point in the history
Basic KSP 1.2 Compatibility Update.
  • Loading branch information
ZiwKerman authored Oct 18, 2016
2 parents f0d8d68 + d6077f6 commit b52b8b0
Show file tree
Hide file tree
Showing 9 changed files with 121 additions and 76 deletions.
19 changes: 14 additions & 5 deletions InfernalRobotics/InfernalRobotics/Command/ServoController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ private void OnVesselChange(Vessel v)
Logger.Log("[ServoController] OnVesselChange finished successfully", Logger.Level.Debug);
}

private void OnVesselWasModified(Vessel v)
private void OnVesselPartCountModified(Vessel v)
{
RebuildServoGroupsFlight ();
}
Expand All @@ -312,7 +312,7 @@ private void Awake()
if (scene == GameScenes.FLIGHT)
{
GameEvents.onVesselChange.Add(OnVesselChange);
GameEvents.onVesselWasModified.Add(OnVesselWasModified);
GameEvents.onVesselPartCountChanged.Add(OnVesselPartCountModified);
GameEvents.onVesselLoaded.Add (OnVesselLoaded);
GameEvents.onVesselDestroy.Add (OnVesselUnloaded);
GameEvents.onVesselGoOnRails.Add (OnVesselUnloaded);
Expand Down Expand Up @@ -345,7 +345,16 @@ public static void SetWheelAutoStruts(bool value, Vessel v)
if (!HighLogic.LoadedSceneIsFlight)
return;

var activeVesselWheels = v.FindPartModulesImplementing<ModuleWheelBase>();
/*foreach(var p in v.Parts)
{
if(!value)
{
p.autoStrutMode = Part.AutoStrutMode.Off;
p.UpdateAutoStrut ();
}
}
*/
/*var activeVesselWheels = v.FindPartModulesImplementing<ModuleWheelBase>();
foreach(var mwb in activeVesselWheels)
{
if (value)
Expand All @@ -358,7 +367,7 @@ public static void SetWheelAutoStruts(bool value, Vessel v)
mwb.autoStrut = value;
}
}*/
}


Expand Down Expand Up @@ -407,7 +416,7 @@ private void OnDestroy()
GameEvents.onVesselChange.Remove(OnVesselChange);
GameEvents.onPartAttach.Remove(OnPartAttach);
GameEvents.onPartRemove.Remove(OnPartRemove);
GameEvents.onVesselWasModified.Remove(OnVesselWasModified);
GameEvents.onVesselWasModified.Remove(OnVesselPartCountModified);
GameEvents.onEditorShipModified.Remove(OnEditorShipModified);
GameEvents.onEditorLoad.Remove(OnEditorLoad);
GameEvents.onEditorRestart.Remove(OnEditorRestart);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ public void Save(bool symmetry = false)
}
module.presetPositionsSerialized = rawServo.presetPositionsSerialized;
module.ParsePresetPositions();
module.defaultPosition = rawServo.defaultPosition; //force sync the default position as well
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion InfernalRobotics/InfernalRobotics/Gui/EditorCategory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ void Awake()
private void IRCustomFilter()
{
const string FILTER_CATEGORY = "Filter by Function";
const string CUSTOM_CATEGORY_NAME = "Robotic Parts";
const string CUSTOM_CATEGORY_NAME = "Robotic";

//var texture_on = new Texture2D(36, 36, TextureFormat.RGBA32, false);
//var texture_off = new Texture2D(36, 36, TextureFormat.RGBA32, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ public class IRBuildAidManager : MonoBehaviour

public static Color endPoint1Color = new Color(1f, 1f, 0, 0.5f);
public static Color endPoint2Color = new Color(1f, 1f, 0, 0.5f);
public static Color mainLineColor1 = new Color(1f, 0.85f, 0, 0.5f);
public static Color mainLineColor2 = new Color(0.85f, 1f, 0, 0.5f);
public static Color mainLineColor1 = new Color(0.88f, 0.7f, 0.188f, 0.7f);
public static Color mainLineColor2 = new Color(0.7f, 0.5f, 0, 0.5f);
public static Color presetPositionsColor = new Color(1f, 1f, 1f, 0.5f);

public static Color currentPositionColor = new Color(0f, 1f, 0f, 0.5f);
Expand Down
1 change: 1 addition & 0 deletions InfernalRobotics/InfernalRobotics/Gui/ServoDropHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public void onServoDrop(ServoDragHandler dragHandler)

var newGroupIndex = dragHandler.dropZone.parent.GetSiblingIndex();
ServoController.MoveServo(ServoController.Instance.ServoGroups[oldGroupIndex], ServoController.Instance.ServoGroups[newGroupIndex], s);
WindowManager.guiRebuildPending = true;
break;
}
}
Expand Down
10 changes: 0 additions & 10 deletions InfernalRobotics/InfernalRobotics/Gui/UIAssetsLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,16 +162,6 @@ private void LoadBundleAssets()

}

public void LoadBundleFromDisk(string path)
{
IRAssetBundle = AssetBundle.CreateFromFile(path);

LoadBundleAssets();

//had to move bundle unloading further down in time due to unexplained and unreproducable on my PC issues for some users
//IRAssetBundle.Unload(false);
}

public void Start()
{
var assemblyFile = Assembly.GetExecutingAssembly().Location;
Expand Down
115 changes: 75 additions & 40 deletions InfernalRobotics/InfernalRobotics/Gui/WindowManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -406,15 +406,17 @@ private void InitFlightControlWindow(bool startSolid = true)
foreach(var pair in _servoGroupUIControls)
{
pair.Key.Stop();
pair.Key.MovingNegative = false;
pair.Key.MovingPositive = false;
}
guiRebuildPending = true;
//TODO: we need to reset oll Movement Toggles
});

var stopAllTooltip = stopAllButton.gameObject.AddComponent<BasicTooltip>();
stopAllTooltip.tooltipText = "Panic! Stop all servos!";

//toggle preset mode if needed
ToggleFlightPresetMode (guiFlightPresetModeOn);

}

private void InitFlightGroupControls(GameObject newServoGroupLine, ServoController.ControlGroup g)
Expand Down Expand Up @@ -452,19 +454,10 @@ private void InitFlightGroupControls(GameObject newServoGroupLine, ServoControll
groupMoveLeftToggle.isOn = g.MovingNegative;
groupMoveLeftToggle.onValueChanged.AddListener(v =>
{
if (g.MovingNegative)
{
g.Stop();
g.MovingNegative = false;
g.MovingPositive = false;
}
else
{
if(g.MovingPositive)
{
hlg.GetChild("ServoGroupMoveRightToggleButton").GetComponent<Toggle>().isOn = false;
}
g.MoveLeft();
g.Stop ();
if (v) {
hlg.GetChild ("ServoGroupMoveRightToggleButton").GetComponent<Toggle> ().isOn = false;
g.MoveLeft ();
g.MovingNegative = true;
g.MovingPositive = false;
}
Expand Down Expand Up @@ -500,18 +493,10 @@ private void InitFlightGroupControls(GameObject newServoGroupLine, ServoControll
groupMoveRightToggle.isOn = g.MovingPositive;
groupMoveRightToggle.onValueChanged.AddListener(v =>
{
if (g.MovingPositive)
{
g.Stop();
g.MovingNegative = false;
g.MovingPositive = false;
}
else
g.Stop();
if (v)
{
if (g.MovingNegative)
{
hlg.GetChild("ServoGroupMoveLeftToggleButton").GetComponent<Toggle>().isOn = false;
}
hlg.GetChild ("ServoGroupMoveLeftToggleButton").GetComponent<Toggle> ().isOn = false;
g.MoveRight();
g.MovingNegative = false;
g.MovingPositive = true;
Expand Down Expand Up @@ -679,7 +664,7 @@ private void ToggleFlightPresetMode(bool value)
}
}

public void PresetInputOnEndEdit(string tmp, int i)
public void PresetInputOnEndEdit(string tmp, int i, GameObject buttonRef = null)
{
if (presetWindowServo == null)
return;
Expand All @@ -694,6 +679,7 @@ public void PresetInputOnEndEdit(string tmp, int i)
}
presetWindowServo.Preset[i] = tmpValue;
presetWindowServo.Preset.Sort();
TogglePresetEditWindow (presetWindowServo, true, buttonRef);
}
}

Expand Down Expand Up @@ -731,7 +717,7 @@ public void TogglePresetEditWindow (IServo servo, bool value, GameObject buttonR
//need a better way to tie them to each other
_presetsWindow.transform.SetParent(UIMasterController.Instance.appCanvas.transform, false);

if (_presetsWindowPosition == Vector3.zero)
if (_presetsWindowPosition == Vector3.zero && buttonRef != null)
_presetsWindow.transform.position = buttonRef.transform.position + new Vector3(30, 0, 0);
else
_presetsWindow.transform.position = ClampWindowPosition(_presetsWindowPosition);
Expand All @@ -743,19 +729,33 @@ public void TogglePresetEditWindow (IServo servo, bool value, GameObject buttonR
{
closeButton.GetComponent<Button>().onClick.AddListener(() => {
TogglePresetEditWindow(servo, false, buttonRef);
buttonRef.GetComponent<Toggle>().isOn = false;
if(buttonRef!= null)
buttonRef.GetComponent<Toggle>().isOn = false;
else
{
foreach (var pair in _servoUIControls) {
var toggle = pair.Value.GetChild ("ServoOpenPresetsToggle");
if (toggle == null)
continue;
toggle.GetComponent<Toggle> ().isOn = false;
}
}
});
var t = closeButton.AddComponent<BasicTooltip>();
t.tooltipText = "Close preset window";
}

var footerControls = _presetsWindow.GetChild("WindowFooter").GetChild("WindowFooterButtonsHLG");

var newPresetPositionInputField = footerControls.GetChild("NewPresetPositionInputField").GetComponent<InputField>();
newPresetPositionInputField.text = string.Format("{0:#0.##}", servo.Mechanism.Position);

var addPresetButton = footerControls.GetChild("AddPresetButton").GetComponent<Button>();
addPresetButton.onClick.AddListener(() =>
{
footerControls = _presetsWindow.GetChild ("WindowFooter").GetChild ("WindowFooterButtonsHLG");
newPresetPositionInputField = footerControls.GetChild ("NewPresetPositionInputField").GetComponent<InputField> ();

string tmp = newPresetPositionInputField.text;
float tmpValue = 0f;
if (float.TryParse(tmp, out tmpValue))
Expand Down Expand Up @@ -787,7 +787,7 @@ public void TogglePresetEditWindow (IServo servo, bool value, GameObject buttonR
var presetPositionInputField = newPresetLine.GetChild("PresetPositionInputField").GetComponent<InputField>();
presetPositionInputField.text = string.Format("{0:#0.##}", servo.Preset[i]);
var presetIndex = i;
presetPositionInputField.onEndEdit.AddListener(tmp => PresetInputOnEndEdit(tmp, presetIndex));
presetPositionInputField.onEndEdit.AddListener(tmp => PresetInputOnEndEdit(tmp, presetIndex, buttonRef));

var servoDefaultPositionToggle = newPresetLine.GetChild("PresetDefaultPositionToggle").GetComponent<Toggle>();
servoDefaultPositionToggle.group = presetsArea.GetComponent<ToggleGroup>();
Expand Down Expand Up @@ -937,6 +937,8 @@ private void InitEditorWindow(bool startSolid = true)
InitEditorGroupControls(newServoGroupLine, g);

_servoGroupUIControls.Add(g, newServoGroupLine);

guiRebuildPending = true;
});

var addGroupTooltip = addGroupButton.gameObject.AddComponent<BasicTooltip>();
Expand Down Expand Up @@ -1075,16 +1077,23 @@ private void InitEditorGroupControls(GameObject newServoGroupLine, ServoControll
while (g.Servos.Any())
{
var s = g.Servos.First();
ServoController.MoveServo(g, ServoController.Instance.ServoGroups[0], s);
if(g != ServoController.Instance.ServoGroups[0])
ServoController.MoveServo(g, ServoController.Instance.ServoGroups[0], s);
else
ServoController.MoveServo (g, ServoController.Instance.ServoGroups [1], s);
}

ServoController.Instance.ServoGroups.Remove(g);

g = null;
RebuildUI();
return;
}
});
if (ServoController.Instance.ServoGroups.Count < 2)
{
groupDeleteButton.interactable = false;
groupDeleteButton.gameObject.SetActive (false);
}


var groupDeleteButtonTooltip = groupDeleteButton.gameObject.AddComponent<BasicTooltip>();
groupDeleteButtonTooltip.tooltipText = "Delete Group";
Expand Down Expand Up @@ -1379,6 +1388,8 @@ public void MoveServoToPrevGroup(GameObject servoLine, IServo s)
//later consider puting animation here, for now just change parents
ServoController.MoveServo(ServoController.Instance.ServoGroups[currentGroupIndex], ServoController.Instance.ServoGroups[currentGroupIndex - 1], s);
servoUIControls.transform.SetParent(prevGroupUIControls.GetChild("ServoGroupServosVLG").transform, false);

guiRebuildPending = true;
}

public void MoveServoToNextGroup(GameObject servoLine, IServo s)
Expand All @@ -1403,6 +1414,8 @@ public void MoveServoToNextGroup(GameObject servoLine, IServo s)
//later consider puting animation here, for now just change parents
ServoController.MoveServo(ServoController.Instance.ServoGroups[currentGroupIndex], ServoController.Instance.ServoGroups[currentGroupIndex + 1], s);
servoUIControls.transform.SetParent(nextGroupUIControls.GetChild("ServoGroupServosVLG").transform, false);

guiRebuildPending = true;
}
public void ShowServoAdvancedMode(IServo servo, bool value)
{
Expand Down Expand Up @@ -1534,6 +1547,19 @@ public void UpdateServoReadoutsFlight(IServo s, GameObject servoUIControls)

}

public void UpdateGroupReadoutsFlight (ServoController.ControlGroup g, GameObject groupUIControls)
{

foreach (var t in groupUIControls.GetComponentsInChildren<Toggle> ())
{
if (t.gameObject.name == "ServoGroupMoveLeftToggleButton")
t.isOn = g.MovingNegative;
else if (t.gameObject.name == "ServoGroupMoveRightToggleButton")
t.isOn = g.MovingPositive;
}

}

public void UpdateServoReadoutsEditor(IServo s, GameObject servoUIControls)
{
var servoPosition = servoUIControls.GetChild("ServoPositionInputField").GetComponent<InputField>();
Expand Down Expand Up @@ -1687,13 +1713,15 @@ public void Update()
return;

if(EventSystem.current.currentSelectedGameObject != null &&
(EventSystem.current.currentSelectedGameObject.name == "GroupNameInputField"
|| EventSystem.current.currentSelectedGameObject.name == "GroupMoveLeftKey"
|| EventSystem.current.currentSelectedGameObject.name == "GroupMoveRightKey"
|| EventSystem.current.currentSelectedGameObject.name == "ServoNameInputField"
|| EventSystem.current.currentSelectedGameObject.name == "ServoPositionInputField"
|| EventSystem.current.currentSelectedGameObject.name == "NewGroupNameInputField"
|| EventSystem.current.currentSelectedGameObject.name == "ServoGroupSpeedMultiplier"))
(EventSystem.current.currentSelectedGameObject.GetComponent<InputField>() != null
|| EventSystem.current.currentSelectedGameObject.GetType() == typeof(InputField)) /*
(EventSystem.current.currentSelectedGameObject.name == "GroupNameInputField"
|| EventSystem.current.currentSelectedGameObject.name == "GroupMoveLeftKey"
|| EventSystem.current.currentSelectedGameObject.name == "GroupMoveRightKey"
|| EventSystem.current.currentSelectedGameObject.name == "ServoNameInputField"
|| EventSystem.current.currentSelectedGameObject.name == "ServoPositionInputField"
|| EventSystem.current.currentSelectedGameObject.name == "NewGroupNameInputField"
|| EventSystem.current.currentSelectedGameObject.name == "ServoGroupSpeedMultiplier")*/)
{
if(!isKeyboardLocked)
KeyboardLock(true);
Expand All @@ -1720,6 +1748,13 @@ public void Update()
continue;
UpdateServoReadoutsFlight(pair.Key, pair.Value);
}

foreach (var pair in _servoGroupUIControls)
{
if (!pair.Value.activeInHierarchy)
continue;
UpdateGroupReadoutsFlight (pair.Key, pair.Value);
}
}
else
{
Expand Down
9 changes: 0 additions & 9 deletions InfernalRobotics/InfernalRobotics/InfernalRobotics.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,6 @@
<HintPath>..\..\..\KSP_LIB\Assembly-CSharp-firstpass.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Assembly-CSharp">
Expand All @@ -51,12 +48,6 @@
<Reference Include="KSPAssets">
<HintPath>..\..\..\KSP_LIB\KSPAssets.dll</HintPath>
</Reference>
<Reference Include="KSPCore">
<HintPath>..\..\..\KSP_LIB\KSPCore.dll</HintPath>
</Reference>
<Reference Include="KSPUtil">
<HintPath>..\..\..\KSP_LIB\KSPUtil.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>..\..\..\KSP_LIB\UnityEngine.UI.dll</HintPath>
</Reference>
Expand Down
Loading

0 comments on commit b52b8b0

Please sign in to comment.