- emergency siren and alarm buzzer items

- wires and alarm buzzers can be fabricated
- fixed items selecting constructions outside the hulls
- ItemLabel.TextColor works now
- removed a random dot at the corner of head5.png
- inventory is visible in wiring mode
- fixed null reference exceptions in AIObjectiveGoto and Holdable
This commit is contained in:
Regalis
2016-03-17 19:28:46 +02:00
parent 20d61b0647
commit 8df9864db9
13 changed files with 143 additions and 40 deletions
@@ -241,7 +241,7 @@ namespace Barotrauma.Items.Components
public override void Update(float deltaTime, Camera cam)
{
if (!item.body.Enabled) return;
if (item.body==null || !item.body.Enabled) return;
if (!picker.HasSelectedItem(item)) IsActive = false;
ApplyStatusEffects(ActionType.OnActive, deltaTime, picker);
@@ -211,7 +211,7 @@ namespace Barotrauma.Items.Components
{
DebugConsole.ThrowError("Invalid pick key in " + element + "!", e);
}
properties = ObjectProperty.InitProperties(this, element);
foreach (XElement subElement in element.Elements())
@@ -265,7 +265,15 @@ namespace Barotrauma.Items.Components
break;
case "sound":
string filePath = ToolBox.GetAttributeString(subElement, "file", "");
if (filePath=="") continue;
if (filePath == "") filePath = ToolBox.GetAttributeString(subElement, "sound", "");
if (filePath == "")
{
DebugConsole.ThrowError("Error when instantiating item ''"+item.Name+"'' - sound with no file path set");
continue;
}
if (!filePath.Contains("/") && !filePath.Contains("\\") && !filePath.Contains(Path.DirectorySeparatorChar))
{
filePath = Path.Combine(Path.GetDirectoryName(item.Prefab.ConfigFile), filePath);
@@ -447,12 +455,7 @@ namespace Barotrauma.Items.Components
//called then the item is dropped or dragged out of a "limbslot"
public virtual void Unequip(Character character) { }
public virtual bool UseOtherItem(Item item)
{
return false;
}
public virtual void ReceiveSignal(string signal, Connection connection, Item sender, float power = 0.0f)
{
@@ -462,6 +465,13 @@ namespace Barotrauma.Items.Components
case "use":
item.Use(1.0f);
break;
case "toggle":
IsActive = !isActive;
break;
case "set_active":
case "set_state":
IsActive = signal != "0";
break;
}
}
@@ -26,17 +26,18 @@ namespace Barotrauma.Items.Components
set
{
textColor = new Color(ToolBox.ParseToVector4(value));
if (textBlock != null) textBlock.TextColor = textColor;
}
}
private GUITextBlock TextBlock
{
get
{
if (textBlock==null)
if (textBlock == null)
{
textBlock = new GUITextBlock(new Rectangle(item.Rect.X,-item.Rect.Y,item.Rect.Width, item.Rect.Height), "",
Color.Transparent, Color.Black,
Color.Transparent, textColor,
Alignment.TopLeft, Alignment.Center,
null, null, true);
textBlock.Font = GUI.SmallFont;
@@ -46,7 +47,7 @@ namespace Barotrauma.Items.Components
return textBlock;
}
}
public override void Move(Vector2 amount)
{
textBlock.Rect = new Rectangle(item.Rect.X, -item.Rect.Y, item.Rect.Width, item.Rect.Height);