Jump to content

[Min KSP 1.12.X] Sandcastle: 3D printing for parts and vessels


Angelo Kerman

Recommended Posts

On 1/15/2022 at 9:27 AM, Hyperspace Industries said:

Could this work with simple construction and not EL installed? It provides all the same resources (metal, rocketparts) and uses EL's plugins. Just curious as to whether I would need to install EL too.

SimpleConstruction uses a different resource chain, however.

EL has:

MetalOre, LFO -> Metal (smelter)

Metal-> RocketParts, ScrapMetal (workshop)

ScrapMetal, LFO -> Metal (smelter)

 

Sandcastle has:

MetalOre, LiquidFuel -> Metal (smelter)

Metal -> RocketParts, ScrapMetal

ScrapMetal -> Metal (smelter)

 

SimpleConstruction has:

Ore -> Metal (ISRU)

Metal -> RocketParts (science labs)

Link to comment
Share on other sites

5 hours ago, leonardfactory said:

Hello @Angel-125! I've translated the mod in italian, you can find the GitHub Pull Request here: https://github.com/Angel-125/Sandcastle/pull/2

Let me know if everything's ok for you!

Thank you for the translation! :) Here is Sandcastle 1.0.7 with the translation. :)

Link to comment
Share on other sites

2 hours ago, Angel-125 said:

Thank you for the translation! :) Here is Sandcastle 1.0.7 with the translation. :)

Awesome! Thank you for the fast update. Regarding the mod, I'd take the opportunity to ask you two questions:

1) I love that this mod uses default stock Inventory, anyway I'm wondering if you would accept a PR regarding KIS inventory support (not required, just optional support). It's just an idea, in order to support printing of almost anything, but I'd like to know your opionin on this since you have surely a pretty good idea of possible issues.

2) I've seen the Print Shop allows to define a "speed" field, anyway it seems to that in the code it's used inverted in "handleCatchup" (https://github.com/Angel-125/Sandcastle/blob/main/source/Sandcastle/PrintShop/PartModules/WBIPrintShop.cs#L361), shouldn't it be a division? Pretty sure I didn't get it right, so take this just as a question

Link to comment
Share on other sites

On 2/27/2022 at 4:36 PM, leonardfactory said:

Awesome! Thank you for the fast update. Regarding the mod, I'd take the opportunity to ask you two questions:

1) I love that this mod uses default stock Inventory, anyway I'm wondering if you would accept a PR regarding KIS inventory support (not required, just optional support). It's just an idea, in order to support printing of almost anything, but I'd like to know your opionin on this since you have surely a pretty good idea of possible issues.

2) I've seen the Print Shop allows to define a "speed" field, anyway it seems to that in the code it's used inverted in "handleCatchup" (https://github.com/Angel-125/Sandcastle/blob/main/source/Sandcastle/PrintShop/PartModules/WBIPrintShop.cs#L361), shouldn't it be a division? Pretty sure I didn't get it right, so take this just as a question

Sandcastle was specifically designed to work with stock inventory, so I have no plans to integrate with KIS. If you're looking for something with KIS integration, I believe there's another mod in development that does that.

Link to comment
Share on other sites

On 3/6/2022 at 2:30 AM, GEONE said:

This mod seems to conflict with TweakScale. Installing both of them will throw a missing DLL exception, but either one separately works finehttps://cdn.discordapp.com/attachments/756477111820091454/949899732703125556/unknown.png

It's an (now) old bug on KSP itself.

When a DLL fails tp be loaded, be it by being missed, or by having a faulty or missing dependency, something inside a thingy called Assembly Resolver gets broken, and from this point everything that relies on a thingy called Reflection and also the Assembly Resolver itself starts to bork. 

TweakScale makes heavy use of both thingies, and so it utterly breaks due this problem.

Since by uninstalling SandCastle TweakScale works, it is installed alright. So the logical conclusion is that SandCastle itself is missing a dependency (or the wrong one is installed), and so it's unadvertdily triggering this KSP bug,

Check if all dependencies are installed and, if you can't find what's wrong, publish your KSP.log using dropbox or something like that and we will look for the problem there.

Cheers!

Link to comment
Share on other sites

I'm having trouble printing some of the parts from pathfinder, specifically the Castillo buildings and some of the inflatable buildings.

They say they need a negative amount of ore, they stay at 0% when printing, and when i exit time warp too quickly, it just freezes and i have to restart the game.

Link to comment
Share on other sites

When Sandcastle is installed with SimpleConstruction! B9PartSwitcher has a conniption and leaps overboard yelling and screaming taking the entire game with it.

receiving B9 fatal errors when going to load this ---> I will put issue on GitHub shortly.

Has to do with SandCastle using the same tank names as SimpleConstruction! was already using, along with SimpleConstruction! not using scScrapMetal... 

https://github.com/Angel-125/Sandcastle/issues/3

I attempted to find a way forward in B9PS.cfg but ran out of time.

image

 

Link to comment
Share on other sites

On 3/14/2022 at 9:49 PM, zer0Kerbal said:

When Sandcastle is installed with SimpleConstruction! B9PartSwitcher has a conniption and leaps overboard yelling and screaming taking the entire game with it.

receiving B9 fatal errors when going to load this ---> I will put issue on GitHub shortly.

Has to do with SandCastle using the same tank names as SimpleConstruction! was already using, along with SimpleConstruction! not using scScrapMetal... 

https://github.com/Angel-125/Sandcastle/issues/3

I attempted to find a way forward in B9PS.cfg but ran out of time.

image

 

Sigh, I really hate B9PS because of issues like this. I could use some help debugging this since I don't use B9PS.

Link to comment
Share on other sites

8 hours ago, Angel-125 said:

Sigh, I really hate B9PS because of issues like this. I could use some help debugging this since I don't use B9PS.

I commiserate with you and your feelings.

I will see what I can do on my end. just probably a little bit of jigglemuckruggery with :NEEDS; probably in both mods. Then there is Not So Simple Construction, wait that doesn't use ScrapMetal either.

Edited by zer0Kerbal
Link to comment
Share on other sites

I have a problem, sometimes a part is duplicated on printing, and instead of one part, it is printed as many as fit into all inventories.
I wasn't able to reproduce it with reliability, it may relate to the exceptions that happens on the duplicate bug:

Spoiler
[EXC 14:09:56.440] NullReferenceException: Object reference not set to an instance of an object
	Sandcastle.Inventory.InventoryUtils.AddItem (Vessel vessel, AvailablePart availablePart, System.Int32 variantIndex, ModuleInventoryPart preferredInventory, System.Boolean removeResources) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.handlePrintJob (System.Double elapsedTime) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.processPrintQueue () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.FixedUpdate () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 14:09:56.510] NullReferenceException: Object reference not set to an instance of an object
	Sandcastle.Inventory.InventoryUtils.AddItem (Vessel vessel, AvailablePart availablePart, System.Int32 variantIndex, ModuleInventoryPart preferredInventory, System.Boolean removeResources) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.handlePrintJob (System.Double elapsedTime) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.processPrintQueue () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.FixedUpdate () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 14:09:56.529] NullReferenceException: Object reference not set to an instance of an object
	Sandcastle.Inventory.InventoryUtils.AddItem (Vessel vessel, AvailablePart availablePart, System.Int32 variantIndex, ModuleInventoryPart preferredInventory, System.Boolean removeResources) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.handlePrintJob (System.Double elapsedTime) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.processPrintQueue () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.FixedUpdate () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[ERR 14:09:56.568] Coroutine couldn't be started because the the game object 'PartItemPrefab(Clone)' is inactive!

 

 

Link to comment
Share on other sites

9 hours ago, flart said:

I have a problem, sometimes a part is duplicated on printing, and instead of one part, it is printed as many as fit into all inventories.
I wasn't able to reproduce it with reliability, it may relate to the exceptions that happens on the duplicate bug:

  Hide contents
[EXC 14:09:56.440] NullReferenceException: Object reference not set to an instance of an object
	Sandcastle.Inventory.InventoryUtils.AddItem (Vessel vessel, AvailablePart availablePart, System.Int32 variantIndex, ModuleInventoryPart preferredInventory, System.Boolean removeResources) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.handlePrintJob (System.Double elapsedTime) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.processPrintQueue () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.FixedUpdate () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 14:09:56.510] NullReferenceException: Object reference not set to an instance of an object
	Sandcastle.Inventory.InventoryUtils.AddItem (Vessel vessel, AvailablePart availablePart, System.Int32 variantIndex, ModuleInventoryPart preferredInventory, System.Boolean removeResources) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.handlePrintJob (System.Double elapsedTime) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.processPrintQueue () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.FixedUpdate () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 14:09:56.529] NullReferenceException: Object reference not set to an instance of an object
	Sandcastle.Inventory.InventoryUtils.AddItem (Vessel vessel, AvailablePart availablePart, System.Int32 variantIndex, ModuleInventoryPart preferredInventory, System.Boolean removeResources) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.handlePrintJob (System.Double elapsedTime) (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.processPrintQueue () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	Sandcastle.PrintShop.WBIPrintShop.FixedUpdate () (at <5c48b7ad0744469ca598cbf9141fe35d>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[ERR 14:09:56.568] Coroutine couldn't be started because the the game object 'PartItemPrefab(Clone)' is inactive!

 

 

What part are you trying to print?

Link to comment
Share on other sites

  • 4 weeks later...
On 4/14/2022 at 3:39 PM, Don0303 said:

i tried using the cone dispenser and now my camera is stuck under the terrain and my ships crash

I just tested with Sandcastle 1.0.8 and Extraplanetary Launchpads 6.99.1, and it works as expected:

J2KWoVF.png

I had no issues dispensing the cone.

Link to comment
Share on other sites

Is there some kind of youtube video to be introduced how SC and EL work together? Somehow I missed the point of understanding, how all that fancy stuff works with all those nice printer-arms etc.

Link to comment
Share on other sites

1 hour ago, Rakete said:

Is there some kind of youtube video to be introduced how SC and EL work together? Somehow I missed the point of understanding, how all that fancy stuff works with all those nice printer-arms etc.

No, but EL comes with a PDF manual. The Construction Manipulator is equal to the orbital construction dock, the Sandcaster is equal to a ground-based launchpad (survey station), and the Construction Marker is equal to the disposable pad. If you check the part descriptions, they should have hints about what they're based on.

Link to comment
Share on other sites

22 hours ago, Rakete said:

Is there some kind of youtube video to be introduced how SC and EL work together? Somehow I missed the point of understanding, how all that fancy stuff works with all those nice printer-arms etc.

 

On 2/19/2022 at 8:08 AM, SkyFall2489 said:

SimpleConstruction uses a different resource chain, however.

EL has:

MetalOre, LFO -> Metal (smelter)

Metal-> RocketParts, ScrapMetal (workshop)

ScrapMetal, LFO -> Metal (smelter)

 

Sandcastle has:

MetalOre, LiquidFuel -> Metal (smelter)

Metal -> RocketParts, ScrapMetal

ScrapMetal -> Metal (smelter)

 

SimpleConstruction has:

Ore -> Metal (ISRU)

Metal -> RocketParts (science labs)

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...