Jump to content

Script Spawned Workshop Objects


kinggath

Recommended Posts

I have a script that spawns in a workshop object, let's say a Bar for example, and then assigns a settler to it. Everything works, the settler works the object, I can purchase things from him, etc. The one problem is that the settler's info card when you look at them in workshop mode shows Unassigned and the spawned object is not highlighted.

 

If you pick up and move the spawned object, the info card updates and the highlighting works again.

 

I can't figure out what I'm missing. The only thing I can think of is that it has to do with the Navmesh, which I've tried calling MoveToNearestNavmeshLocation with no success.

 

Here is the function that does the work:

Function Test()
	Debug.Notification("Running test...")
	ObjectReference playerRef = Game.GetPlayer()

	workshopscript thisWorkshop = WorkshopParent.GetWorkshopFromLocation(playerRef.GetCurrentLocation())
	
	if(thisWorkshop)
		ObjectReference spawnTest = thisWorkshop.GetLinkedRef(WorkshopParent.WorkshopLinkSpawn).PlaceAtMe(SpawnMe)
		if(WorkshopParent.BuildObjectPUBLIC(spawnTest, thisWorkshop))
			Debug.Notification("Spawned work object.")
			ObjectReference[] workshopActors = WorkshopParent.GetWorkshopActors(thisWorkshop)

			if(workshopActors)
				int j = 0
				bool assignmentAttempted = false
				
				while(j < workshopActors.Length && ! assignmentAttempted)
					if( ! (workshopActors[j] as workshopnpcscript).bIsWorker)
						assignmentAttempted = true

						WorkshopParent.AssignActorToObjectPUBLIC(workshopActors[j] as workshopnpcscript, spawnTest as workshopobjectscript)
						Debug.Notification("Assigned actor.")
					endif

					j += 1
				endwhile
			endif
		endif
	endif
EndFunction
Link to comment
Share on other sites

I don't have a solution yet, but I'm closer to figuring out the exact cause.

 

If I call GetWorkshopOwnedObjects in the OnWorkshopObjectGrabbed event for the spawned object, it comes back empty. When I also place it in the OnWorkshopObjectMoved event for that object, it comes back finding the reference.

 

Something is preventing ownership from completing until after the object is placed in workshop mode. I've now tried calling SetActorRefOwner manually, and that doesn't fix it.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...