else if (this.name.Equals("Furnace"))
{
if (who.IsLocalPlayer && this.GetTallyOfObject(who, 382, big_craftable: false) <= 0)
{
if (!probe && who.IsLocalPlayer && Object.autoLoadChest == null)
{
Game1.showRedMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Object.cs.12772"));
}
return false;
}
if (this.heldObject.Value == null)
{
if ((int)dropIn.stack < 5 && (int)dropIn.parentSheetIndex != 80 && (int)dropIn.parentSheetIndex != 82 && (int)dropIn.parentSheetIndex != 330 && (int)dropIn.parentSheetIndex != 458)
{
if (!probe && who.IsLocalPlayer && Object.autoLoadChest == null)
{
Game1.showRedMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Object.cs.12777"));
}
return false;
}
int toRemove = 5;
switch (dropIn.ParentSheetIndex)
{
case 378:
this.heldObject.Value = new Object(Vector2.Zero, 334, 1);
if (!probe)
{
this.minutesUntilReady.Value = 30;
}
break;
case 380:
this.heldObject.Value = new Object(Vector2.Zero, 335, 1);
if (!probe)
{
this.minutesUntilReady.Value = 120;
}
break;
case 384:
this.heldObject.Value = new Object(Vector2.Zero, 336, 1);
if (!probe)
{
this.minutesUntilReady.Value = 300;
}
break;
case 386:
this.heldObject.Value = new Object(Vector2.Zero, 337, 1);
if (!probe)
{
this.minutesUntilReady.Value = 480;
}
break;
case 80:
this.heldObject.Value = new Object(Vector2.Zero, 338, "Refined Quartz", canBeSetDown: false, canBeGrabbed: true, isHoedirt: false, isSpawnedObject: false);
if (!probe)
{
this.minutesUntilReady.Value = 90;
toRemove = 1;
}
break;
case 82:
this.heldObject.Value = new Object(338, 3);
if (!probe)
{
this.minutesUntilReady.Value = 90;
toRemove = 1;
}
break;
case 458:
this.heldObject.Value = new Object(277, 1);
if (!probe)
{
this.minutesUntilReady.Value = 10;
toRemove = 1;
}
break;
case 909:
this.heldObject.Value = new Object(910, 1);
if (!probe)
{
this.minutesUntilReady.Value = 560;
}
break;
default:
return false;
}
...
}
So basically we couldn't do anything to change this except using mods right?This is not in an xnb file.
This is hardcoded into Object::performObjectDropInAction, starting from a line where this.name.Equals("Furnace")
C#:else if (this.name.Equals("Furnace")) { if (who.IsLocalPlayer && this.GetTallyOfObject(who, 382, big_craftable: false) <= 0) { if (!probe && who.IsLocalPlayer && Object.autoLoadChest == null) { Game1.showRedMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Object.cs.12772")); } return false; } if (this.heldObject.Value == null) { if ((int)dropIn.stack < 5 && (int)dropIn.parentSheetIndex != 80 && (int)dropIn.parentSheetIndex != 82 && (int)dropIn.parentSheetIndex != 330 && (int)dropIn.parentSheetIndex != 458) { if (!probe && who.IsLocalPlayer && Object.autoLoadChest == null) { Game1.showRedMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Object.cs.12777")); } return false; } int toRemove = 5; switch (dropIn.ParentSheetIndex) { case 378: this.heldObject.Value = new Object(Vector2.Zero, 334, 1); if (!probe) { this.minutesUntilReady.Value = 30; } break; case 380: this.heldObject.Value = new Object(Vector2.Zero, 335, 1); if (!probe) { this.minutesUntilReady.Value = 120; } break; case 384: this.heldObject.Value = new Object(Vector2.Zero, 336, 1); if (!probe) { this.minutesUntilReady.Value = 300; } break; case 386: this.heldObject.Value = new Object(Vector2.Zero, 337, 1); if (!probe) { this.minutesUntilReady.Value = 480; } break; case 80: this.heldObject.Value = new Object(Vector2.Zero, 338, "Refined Quartz", canBeSetDown: false, canBeGrabbed: true, isHoedirt: false, isSpawnedObject: false); if (!probe) { this.minutesUntilReady.Value = 90; toRemove = 1; } break; case 82: this.heldObject.Value = new Object(338, 3); if (!probe) { this.minutesUntilReady.Value = 90; toRemove = 1; } break; case 458: this.heldObject.Value = new Object(277, 1); if (!probe) { this.minutesUntilReady.Value = 10; toRemove = 1; } break; case 909: this.heldObject.Value = new Object(910, 1); if (!probe) { this.minutesUntilReady.Value = 560; } break; default: return false; } ... }