Skip to content

Commit

Permalink
use causing player to place construction blocks
Browse files Browse the repository at this point in the history
  • Loading branch information
Scarabol committed Mar 23, 2018
1 parent ba918cc commit d9db0e0
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
8 changes: 4 additions & 4 deletions src/Capsules.cs
Expand Up @@ -45,7 +45,7 @@ public static void AfterAddingBaseTypes (Dictionary<string, ItemTypesServer.Item
.SetAs ("rotatablez-", blueprintTypename + CAPSULE_SUFFIX + "z-")
.SetAs ("npcLimit", "0")
));
foreach (string xz in new string[] { "x+", "x-", "z+", "z-" }) {
foreach (string xz in new string [] { "x+", "x-", "z+", "z-" }) {
itemTypes.Add (blueprintTypename + CAPSULE_SUFFIX + xz, new ItemTypesServer.ItemTypeRaw (blueprintTypename + CAPSULE_SUFFIX + xz,
new JSONNode ()
.SetAs ("parentType", blueprintTypename + CAPSULE_SUFFIX)
Expand All @@ -69,15 +69,15 @@ static class CapsuleBlockCode
public static void OnPlaceCapsule (Vector3Int position, ushort capsuleType, Players.Player causedBy)
{
if (!PermissionsManager.CheckAndWarnPermission (causedBy, CapsulesModEntries.CAPSULE_PERMISSION)) {
ServerManager.TryChangeBlock (position, BlockTypes.Builtin.BuiltinBlocks.Air);
ServerManager.TryChangeBlock (position, BlockTypes.Builtin.BuiltinBlocks.Air, Players.GetPlayer (NetworkID.Server));
return;
}
ThreadManager.InvokeOnMainThread (delegate () {
ushort realType;
if (World.TryGetTypeAt (position, out realType) && realType != capsuleType) {
return;
}
ServerManager.TryChangeBlock (position, BlockTypes.Builtin.BuiltinBlocks.Air);
ServerManager.TryChangeBlock (position, BlockTypes.Builtin.BuiltinBlocks.Air, Players.GetPlayer (NetworkID.Server));
string capsuleName = ItemTypes.IndexLookup.GetName (capsuleType);
string blueprintName = capsuleName.Substring (0, capsuleName.Length - CapsulesModEntries.CAPSULE_SUFFIX.Length - 2);
Chat.Send (causedBy, string.Format ("Starting to build '{0}' at {1}", blueprintName, position));
Expand All @@ -97,7 +97,7 @@ public static void OnPlaceCapsule (Vector3Int position, ushort capsuleType, Play
rotatedTypename = baseTypename + TypeHelper.VectorToXZ (combinedVec);
}
ushort rotatedType;
if (realPosition.y > 0 && ItemTypes.IndexLookup.TryGetIndex (rotatedTypename, out rotatedType) && ServerManager.TryChangeBlock (realPosition, rotatedType)) {
if (realPosition.y > 0 && ItemTypes.IndexLookup.TryGetIndex (rotatedTypename, out rotatedType) && ServerManager.TryChangeBlock (realPosition, rotatedType, Players.GetPlayer (NetworkID.Server))) {
if (block.typename.Equals ("air")) {
removed++;
} else {
Expand Down
6 changes: 3 additions & 3 deletions src/Construction.cs
Expand Up @@ -176,7 +176,7 @@ public override void OnNPCAtJob (ref NPCBase.NPCState state)
ushort baseType = ItemTypes.IndexLookup.GetIndex (baseTypename);
if (newType == BuiltinBlocks.Air || blockInventory.TryGetOneItem (baseType)) {
todoblocks.RemoveAt (i);
if (ServerManager.TryChangeBlock (realPosition, newType)) {
if (ServerManager.TryChangeBlock (realPosition, newType, owner)) {
state.JobIsDone = true;
if (newType == BuiltinBlocks.Air) {
state.SetCooldown (ConstructionModEntries.EXCAVATION_DELAY);
Expand Down Expand Up @@ -204,7 +204,7 @@ public override void OnNPCAtStockpile (ref NPCBase.NPCState state)
{
state.Inventory.Dump (usedNPC.Colony.UsedStockpile);
if (todoblocks.Count < 1) {
ServerManager.TryChangeBlock (position, BuiltinBlocks.Air);
ServerManager.TryChangeBlock (position, BuiltinBlocks.Air, owner);
return;
}
state.JobIsDone = true;
Expand Down Expand Up @@ -235,7 +235,7 @@ public override void OnNPCAtStockpile (ref NPCBase.NPCState state)
}
}
if (todoblocks.Count < 1) {
ServerManager.TryChangeBlock (position, BuiltinBlocks.Air);
ServerManager.TryChangeBlock (position, BuiltinBlocks.Air, owner);
return;
} else if (shouldTakeItems) {
state.JobIsDone = false;
Expand Down
4 changes: 2 additions & 2 deletions src/Scaffolds.cs
Expand Up @@ -66,7 +66,7 @@ public static void AddScaffolds (Vector3Int position, ushort newtype, Players.Pl
Vector3Int realPos = block.GetWorldPosition (blueprintBasename, position, bluetype);
ushort wasType;
if (World.TryGetTypeAt (realPos, out wasType) && wasType == BuiltinBlocks.Air) {
ServerManager.TryChangeBlock (realPos, scaffoldType);
ServerManager.TryChangeBlock (realPos, scaffoldType, causedBy);
}
}
ThreadManager.InvokeOnMainThread (delegate () {
Expand Down Expand Up @@ -100,7 +100,7 @@ public static void RemoveScaffolds (Vector3Int position, ushort wastype, Players
Vector3Int realPos = block.GetWorldPosition (blueprintBasename, position, bluetype);
ushort wasType;
if (World.TryGetTypeAt (realPos, out wasType) && wasType == scaffoldType) {
ServerManager.TryChangeBlock (realPos, BuiltinBlocks.Air);
ServerManager.TryChangeBlock (realPos, BuiltinBlocks.Air, causedBy);
}
}
}
Expand Down

0 comments on commit d9db0e0

Please sign in to comment.