Skip to content

Commit

Permalink
1.19.1 (#807)
Browse files Browse the repository at this point in the history
## Bug fixes
- Fix translation keys containing <CDATA> breaking. Thanks orclecle for
the report!
- Added a sphere collision to item props if they had none. Thanks
Hawkbar!
  • Loading branch information
xen-42 authored Mar 15, 2024
2 parents 5a47796 + bb39c98 commit 13ea363
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 6 deletions.
5 changes: 5 additions & 0 deletions NewHorizons/Builder/Props/DetailBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,11 @@ public static GameObject Make(GameObject go, Sector sector, IModBehaviour mod, G
if (detail.item != null)
{
ItemBuilder.MakeItem(prop, go, sector, detail.item, mod);
isItem = true;
if (detail.hasPhysics)
{
NHLogger.LogWarning($"An item with the path {detail.path} has both '{nameof(DetailInfo.hasPhysics)}' and '{nameof(DetailInfo.item)}' set. This will usually result in undesirable behavior.");
}
}

if (detail.itemSocket != null)
Expand Down
6 changes: 6 additions & 0 deletions NewHorizons/Builder/Props/ItemBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,12 @@ public static NHItem MakeItem(GameObject go, GameObject planetGO, Sector sector,
item.ClearPickupConditionOnDrop = info.clearPickupConditionOnDrop;
item.PickupFact = info.pickupFact;

if (info.colliderRadius > 0f)
{
go.AddComponent<SphereCollider>().radius = info.colliderRadius;
go.GetAddComponent<OWCollider>();
}

Delay.FireOnNextUpdate(() =>
{
if (item != null && !string.IsNullOrEmpty(info.pathToInitialSocket))
Expand Down
7 changes: 6 additions & 1 deletion NewHorizons/External/Modules/Props/Item/ItemInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,19 @@ public class ItemInfo
/// </summary>
public string name;
/// <summary>
/// The type of the item, which determines its orientation when held and what sockets it fits into. This can be a custom string, or a vanilla ItemType (Scroll, WarpCode, SharedStone, ConversationStone, Lantern, SlideReel, DreamLantern, or VisionTorch). Defaults to the item name.
/// The type of the item, which determines its orientation when held and what sockets it fits into. This can be a custom string, or a vanilla ItemType (Scroll, WarpCore, SharedStone, ConversationStone, Lantern, SlideReel, DreamLantern, or VisionTorch). Defaults to the item name.
/// </summary>
public string itemType;
/// <summary>
/// The furthest distance where the player can interact with this item. Defaults to two meters, same as most vanilla items. Set this to zero to disable all interaction by default.
/// </summary>
[DefaultValue(2f)] public float interactRange = 2f;
/// <summary>
/// The radius that the added sphere collider will use for collision and hover detection.
/// If there's already a collider on the detail, you can make this 0.
/// </summary>
[DefaultValue(0.5f)] public float colliderRadius = 0.5f;
/// <summary>
/// Whether the item can be dropped. Defaults to true.
/// </summary>
[DefaultValue(true)] public bool droppable = true;
Expand Down
4 changes: 2 additions & 2 deletions NewHorizons/Handlers/TranslationHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public static string GetTranslation(string text, TextType type, bool warn)
return translatedText;
}
// Try without whitespace if its missing
else if (table.TryGetValue(text.TruncateWhitespace(), out translatedText))
else if (table.TryGetValue(text.TruncateWhitespaceAndToLower(), out translatedText))
{
return translatedText;
}
Expand Down Expand Up @@ -99,7 +99,7 @@ public static void RegisterTranslation(TextTranslation.Language language, Transl
// Fix new lines in dialogue translations, remove whitespace from keys else if the dialogue has weird whitespace and line breaks it gets really annoying
// to write translation keys for (can't just copy paste out of xml, have to start adding \\n and \\r and stuff
// If any of these issues become relevant to other dictionaries we can bring this code over, but for now why fix what isnt broke
var key = originalKey.Replace("\\n", "\n").TruncateWhitespace().Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", "");
var key = originalKey.Replace("\\n", "\n").Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", "").TruncateWhitespaceAndToLower();
var value = config.DialogueDictionary[originalKey].Replace("\\n", "\n").Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", "");

if (!_dialogueTranslationDictionary[language].ContainsKey(key)) _dialogueTranslationDictionary[language].Add(key, value);
Expand Down
8 changes: 7 additions & 1 deletion NewHorizons/Schemas/body_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -1402,14 +1402,20 @@
},
"itemType": {
"type": "string",
"description": "The type of the item, which determines its orientation when held and what sockets it fits into. This can be a custom string, or a vanilla ItemType (Scroll, WarpCode, SharedStone, ConversationStone, Lantern, SlideReel, DreamLantern, or VisionTorch). Defaults to the item name."
"description": "The type of the item, which determines its orientation when held and what sockets it fits into. This can be a custom string, or a vanilla ItemType (Scroll, WarpCore, SharedStone, ConversationStone, Lantern, SlideReel, DreamLantern, or VisionTorch). Defaults to the item name."
},
"interactRange": {
"type": "number",
"description": "The furthest distance where the player can interact with this item. Defaults to two meters, same as most vanilla items. Set this to zero to disable all interaction by default.",
"format": "float",
"default": 2.0
},
"colliderRadius": {
"type": "number",
"description": "The radius that the added sphere collider will use for collision and hover detection.\nIf there's already a collider on the detail, you can make this 0.",
"format": "float",
"default": 0.5
},
"droppable": {
"type": "boolean",
"description": "Whether the item can be dropped. Defaults to true.",
Expand Down
2 changes: 1 addition & 1 deletion NewHorizons/Utility/NewHorizonExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ public static XmlNode GetChildNode(this XmlNode parentNode, string tagName)
return parentNode.ChildNodes.Cast<XmlNode>().First(node => node.LocalName == tagName);
}

public static string TruncateWhitespace(this string text)
public static string TruncateWhitespaceAndToLower(this string text)
{
// return Regex.Replace(text.Trim(), @"[^\S\r\n]+", "GUH");
return Regex.Replace(text.Trim(), @"\s+", " ").ToLowerInvariant();
Expand Down
2 changes: 1 addition & 1 deletion NewHorizons/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"author": "xen, Bwc9876, JohnCorby, MegaPiggy, Clay, Trifid, and friends",
"name": "New Horizons",
"uniqueName": "xen.NewHorizons",
"version": "1.19.0",
"version": "1.19.1",
"owmlVersion": "2.9.8",
"dependencies": [ "JohnCorby.VanillaFix", "_nebula.MenuFramework", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ],
"conflicts": [ "Raicuparta.QuantumSpaceBuddies", "PacificEngine.OW_CommonResources" ],
Expand Down

0 comments on commit 13ea363

Please sign in to comment.