Welcome to Keen Software House Forums! Log in or Sign up to interact with the KSH community.
  1. You are currently browsing our forum as a guest. Create your own forum account to access all forum functionality.

Pennywise's openspace circus - New: Automated gravity cannon

Discussion in 'Community Creations' started by Pennywise, Oct 7, 2015.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. Pennywise Apprentice Engineer

    Messages:
    338
    I continue to test my new air-to-surface missile on moving targets.
    I've added turrets dodging and made other minor script updates.
    Missile makes more smooth and natural turns now.

     
    • Like Like x 4
  2. tankmayvin Senior Engineer

    Messages:
    2,863
  3. Ronin1973 Master Engineer

    Messages:
    4,828
    That is awesome. I have a little feedback.

    1. I'd keep the hydrogen thrusters as they can accelerate faster and handle more weight. More mass means more damage against heavily armored targets. It's a small price to pay to have your enemy pay a big price. :)

    2. You'd be able to add more mass by launching the missile vertically. Would that affect the ability to lock on the target?

    3. This is a big challenge.

    Can you create a version where the missiles are located on a primary vehicle and the lock-on equipment is on a different ship?​
    Having a large ship that's hiding some distance away while a small scout size ship is nimbly moving around and designating targets would be pretty optimum. ​
    The launcher could be back at the main base or flying high above. This would also allow a small ship to easily guide a large black version of your torpedo.... oh the horror. :)
     
  4. Pennywise Apprentice Engineer

    Messages:
    338
    1. I've just noticed, that oxigen generator doesn't produce enough H to fuel up 8 small thrusters. So, I need to add more generators and make missile longer and more easy to hit by rocket turrets, or add H tank, which has 5*5*5 size, or change to atmospheric thrusters.
    2. yes, for rover version i will launch them vertically, i guess.
    3. Yes, that's doable. Via laser antenna, or memorized block referance. I'm currently use this referance for "laser guided" fire mode.
     
  5. Bipin Trainee Engineer

    Messages:
    33
    Fabulous work Pennywise. The top-down attack is such a nice touch; just like the real thing.
     
  6. Pennywise Apprentice Engineer

    Messages:
    338
    5. Planetary coordinates and compass tool.

    Workshop: http://steamcommunity.com/sharedfiles/filedetails/?id=558846217
    This little solar-powered plane will help you to find planet center, your altitude (above center of the planet), latitude and longitude.
    Also, it provides you with compass, showing your bearing on planet.

    How to use:
    Press "1" to start calculation of planet center and fly horizontaly for 5-10 seconds.
    Press "2" to stop script
    Press "3" to stop planet center recalculation and continue only bearing and planetary coordinates calculation.

    Special thanks to @Sinbad, whose thread in scripting section of the forum made me to think on such things, like planetary GPS in SE.
     
    • Like Like x 6
  7. The Churrosaur Junior Engineer

    Messages:
    744
    I think you win.
     
    • Agree Agree x 2
  8. sammyvoncheese Apprentice Engineer

    Messages:
    151
    lots of cool stuff, but this is really nice.
     
  9. Ralirashi Apprentice Engineer

    Messages:
    306
    Stronk russian engineering. Amazing creations comrade.
     
    • Funny Funny x 1
  10. Pennywise Apprentice Engineer

    Messages:
    338
    Ok, I'm back to air2ground missiles. Now they have aerodynamic winglets from Aerodynamics mod by Diji. Plane has aerodynamic wings too and 3 suspended wheels for realistic takeoff and landing.
    Since Keens have fixed "no floating objects out of destroyed container" bug in this update, i'll add some more blocks for better damage and publish the thingy.
     
  11. Ralirashi Apprentice Engineer

    Messages:
    306
    Nice looking missiles. Vanilla is cool, but some mods make things look and even perform better. By the way, why not add a warhead?
     
  12. Pennywise Apprentice Engineer

    Messages:
    338
    Now, when Keen repaired container inventory, i'll return damaging elements and a warhead back.
     
  13. Innoble Apprentice Engineer

    Messages:
    238
    Pennywise, I recently used your planet center calculation for my experiments with cruise missiles.

    First of all: Awesome work. Since your work helps me, I felt I should help you out as well. The TargetGPS method could use some improvement. Without understanding exactly (I do get the gist of it) why you are doing the mathematical operations you are doing, I translated that math into a much shorter and faster version of it. The improvements are mostly the inner products, cross products and the removal of a lot of duplicate calculations.

    This is your version of the method:

    Code:
    Vector3D TargetGPS(Vector3D FirstPos, Vector3D FirstGravVector, Vector3D LaststPos, Vector3D LastGravVector)
    {
    double aX = FirstPos.GetDim(0);
    double aY = FirstPos.GetDim(1);
    double aZ = FirstPos.GetDim(2);
    double bX = FirstGravVector.GetDim(0);
    double bY = FirstGravVector.GetDim(1);
    double bZ = FirstGravVector.GetDim(2);
     
    double cX = LastPos.GetDim(0);
    double cY = LastPos.GetDim(1);
    double cZ = LastPos.GetDim(2);
    double sX = LastGravVector.GetDim(0);
    double sY = LastGravVector.GetDim(1);
    double sZ = LastGravVector.GetDim(2);
     
    double AB2, SCxAB, ASxAB, ABxSC, SC2, ASxSC, Mk, Nk, mX, mY, mZ, nX, nY, nZ;
    AB2=(bX-aX)*(bX-aX)+(bY-aY)*(bY-aY)+(bZ-aZ)*(bZ-aZ);
    SCxAB=(cX-sX)*(bX-aX)+(cY-sY)*(bY-aY)+(cZ-sZ)*(bZ-aZ);
    ASxAB=(sX-aX)*(bX-aX)+(sY-aY)*(bY-aY)+(sZ-aZ)*(bZ-aZ);
    ABxSC=(bX-aX)*(cX-sX)+(bY-aY)*(cY-sY)+(bZ-aZ)*(cZ-sZ);
    SC2=(cX-sX)*(cX-sX)+(cY-sY)*(cY-sY)+(cZ-sZ)*(cZ-sZ);
    ASxSC=(sX-aX)*(cX-sX)+(sY-aY)*(cY-sY)+(sZ-aZ)*(cZ-sZ);
     
    Mk=((ASxAB*SC2)-(ASxSC*SCxAB))/((AB2*SC2)-(ABxSC*SCxAB));
    Nk=((AB2*ASxSC)-(ABxSC*ASxAB))/((AB2*SC2)-(ABxSC*SCxAB));
     
    mX=aX+((bX-aX)*Mk);
    mY=aY+((bY-aY)*Mk);
    mZ=aZ+((bZ-aZ)*Mk);
     
    nX=sX+((sX-cX)*Nk);
    nY=sY+((sY-cY)*Nk);
    nZ=sZ+((sZ-cZ)*Nk);
     
    return new Vector3D((mX+nX)/2, (mY+nY)/2, (mZ+nZ)/2);
    }
    This my version of the method you wrote. It is mathematically completely identical (if you also change the method call):

    Code:
    Vector3D TargetGPS(Vector3D FirstPos, Vector3D FirstGravVector, Vector3D LastPos, Vector3D LastGravVector) 
    {
     
    double D11, D22, D12, D31, D32, C12, Mk, Nk;
     
    Vector3D Pos_change = LastPos - FirstPos; 
    Vector3D Cross12 = Vector3D.Cross(FirstGravVector, LastGravVector);
     
    D11 = Vector3D.Dot(FirstGravVector, FirstGravVector); 
    D22= Vector3D.Dot(LastGravVector, LastGravVector); 
    D12 = Vector3D.Dot(FirstGravVector, LastGravVector); 
    D31= Vector3D.Dot(Pos_change, FirstGravVector); 
    D32= Vector3D.Dot(Pos_change, LastGravVector);
    C12 = Vector3D.Dot(Cross12, Cross12);
     
    Mk= (D22*D31 - D32*D12) / C12; 
    Nk= (D12*D31 - D32*D11) / C12;
    Vector3D m = FirstPos + Mk * FirstGravVector;
    Vector3D n = LastPos + Nk *LastGravVector;
    
    return ((m+n)/2); 
    }
     
    
    To go with the method change I also changed the method call from:

    Code:
    PlanetCenter=TargetGPS(FirstPos, FirstPos+FirstGravVector, LastPos, LastPos+LastGravVector);
    to

    Code:
    PlanetCenter=TargetGPS(FirstPos, FirstGravVector, LastPos, LastGravVector); 
    It made more sense to me this way and it made the method even smaller. I tested it and it gives exactly the same center coördinates. Also just to emphasize, I did not reinvent your math, I just translated it so that it is easier to read and uses less CPU resources. It would take a lot more effort for me to actually fully grasp your mathematical reasoning. This is a pretty amazing thing you've done.

    The fully adapted script:

    Code:
    /////////////////////////
    // How to use:
    // Press "1" to start calculation of planet center and fly horizontaly for 5-10 seconds.
    // Press "2" to stop script
    // Press "3" to stop planet center recalculation and continue only bearing and planetary coordinates calculation.
    // You can place this tool on rover, mining ship or satellite.
    // You need to place these blocks:
     
    // block			name				   settings
    // Timer			"TimerClock"		   trigger Programmable block
    // Program block	"Programmable block"   copy script there
    // Remote Control   "RemCon"
    // Text Panel	   "TP"				   set font size to 1.3, select "show public text" option
     
    // Script arguments for 1, 2, 3 buttons: "Start", "Stop", "Continue".
    // The only thing, you should keep in mind, script works only in gravity range.
    ///////////////////////////
     
    //-----User defined vars------
    const int Clock=15;  // defines how frequantly will your text panel be updated	
    const string TimerName= "TimerClock"; // timer block name
    const string TPName= "TP"; // text panel name
    const string RemConName= "RemCon"; // remote control name
    //-----------------
     
    IMyTimerBlock Timer;	
    IMyTextPanel TP;	
    IMyRemoteControl RemCon;	
    int TickCount;	
    bool On, RecalcCenter;	
    Vector3D FirstPos, FirstGravVector, LastPos, LastGravVector, PlanetCenter, AltVector, AltReject, FReject, VectNord, LReject, GravVectorNorm;
    double Alpha, Alpha2, Altitude, Latitude, Longitude, Bearing;
     
    const string CompassStr="|NW|-320--325--330--335--340--345--350--355--|N|--005--010--015--020--025--030--035--040--|NE|-050--055--060--065--070--075--080--085--|E|--095--100--105--110--115--120--125--130--|SE|-140--145--150--155--160--165--170--175--|S|--185--190--195--200--205--210--215--220--|SW|-230--235--240--245--250--255--260--265--|W|--275--280--285--290--295--300--305--310--|NW|-320--325--330--335--340--345--350--355--|N|--005--010--015--020--025--030--035--040--";
    string Compass;
    //---------------	
    	
    void Main(string argument){	
    if (Timer==null)	
    Timer = GridTerminalSystem.GetBlockWithName(TimerName) as IMyTimerBlock;	
    if (TP==null)	
    TP = GridTerminalSystem.GetBlockWithName(TPName) as IMyTextPanel; 
    if (RemCon==null)	
    RemCon = GridTerminalSystem.GetBlockWithName(RemConName) as IMyRemoteControl;
    if (argument=="Start")	
    {	
    On=true; 
    Alpha2=0;
    Alpha=0;
    FirstPos = RemCon.GetPosition();
    FirstGravVector = RemCon.GetNaturalGravity();
    RecalcCenter=true;
    }	
    if (argument=="Stop")	
    {	
    On=false;
    RecalcCenter=false;
    }	
    if (argument=="Continue")	
    {	
    On=true;	
    RecalcCenter=false;
    }	
     
    TickCount++;	
    if ((TickCount % Clock)==0)	
    {	
    LastPos = RemCon.GetPosition();
    LastGravVector = RemCon.GetNaturalGravity();
    GravVectorNorm = Vector3D.Normalize(LastGravVector);
       FReject = Vector3D.Reject(RemCon.WorldMatrix.Forward, GravVectorNorm);
       VectNord = Vector3D.Reject(new Vector3D(0,-1,0), GravVectorNorm);
    if (Math.Acos(Vector3D.Dot(RemCon.WorldMatrix.Down, GravVectorNorm))<(Math.PI/2))
       LReject = Vector3D.Reject(RemCon.WorldMatrix.Right, GravVectorNorm);
    else
       LReject = Vector3D.Reject(RemCon.WorldMatrix.Left, GravVectorNorm);
    if (LReject.GetDim(1)>0)
    Bearing = Math.Acos(Vector3D.Dot(Vector3D.Normalize(FReject), Vector3D.Normalize(VectNord)))*180/Math.PI;
    else
    Bearing = 360 - Math.Acos(Vector3D.Dot(Vector3D.Normalize(FReject), Vector3D.Normalize(VectNord)))*180/Math.PI;
    Compass = CompassStr.Substring((int)Bearing+31, 31);
    if (RecalcCenter)
    {
    Alpha = Math.Acos(Vector3D.Dot(Vector3D.Normalize(LastGravVector), Vector3D.Normalize(FirstGravVector)));
    if (Alpha > Alpha2)
    {
    Alpha2=Alpha;
    // PlanetCenter=TargetGPS(FirstPos, FirstPos+FirstGravVector, LastPos, LastPos+LastGravVector);
    PlanetCenter=TargetGPS(FirstPos, FirstGravVector, LastPos, LastGravVector);
    }
    }
    AltVector = LastPos - PlanetCenter;
    Altitude=AltVector.Length();
    AltReject=new Vector3D(AltVector.GetDim(0), 0, AltVector.GetDim(2));
    Latitude = Math.Acos(Vector3D.Dot(Vector3D.Normalize(AltVector), Vector3D.Normalize(AltReject)))*180/Math.PI;
    if (AltVector.GetDim(1)>0)
    Latitude=-Latitude;
    Longitude = Math.Acos(Vector3D.Dot(Vector3D.Normalize(AltReject), new Vector3D(0,0,1)))*180/Math.PI;
    if (AltReject.GetDim(0)<0)
    Longitude=-Longitude;
    string Output=" My Pos";
    			Output += "\n X: " + Math.Round(LastPos.GetDim(0)) + "\n Y: " + Math.Round(LastPos.GetDim(1)) + "\n Z: " + Math.Round(LastPos.GetDim(2));
    Output+= "\n Bearing: " + Math.Round(Bearing, 2);
    Output+= "\n" + Compass;
    Output+= "\n Altitude: " + Math.Round(Altitude, 2);
    Output+= "\n Latitude: " + Math.Round(Latitude, 4);
    Output+= "\n Longitude: " + Math.Round(Longitude, 4);
    //Output+= "\n Angle: " + Math.Round((Alpha*180/Math.PI), 2) + " / " + Math.Round((Alpha2*180/Math.PI), 2);
    Output+= "\n Planet center";
    			Output += "\n X: " + Math.Round(PlanetCenter.GetDim(0)) + "\n Y: " + Math.Round(PlanetCenter.GetDim(1)) + "\n Z: " + Math.Round(PlanetCenter.GetDim(2));
    TextOutput(TP, Output);
    Timer.GetActionWithName("TriggerNow").Apply(Timer);	
    }	
    else{	
    if (On)	
    Timer.GetActionWithName("TriggerNow").Apply(Timer);		
    }	 
    }	
     
    public void TextOutput(IMyTextPanel tp, string output = "")
    {
    if (tp != null)
    {
    tp.ShowTextureOnScreen();
    if (output != "")
    {
    tp.WritePublicText(output);
    }
    tp.ShowPublicTextOnScreen();
    tp.GetActionWithName("OnOff_On").Apply(tp);
    }
    }
     
    Vector3D TargetGPS(Vector3D FirstPos, Vector3D FirstGravVector, Vector3D LastPos, Vector3D LastGravVector) 
    {
     
    double D11, D22, D12, D31, D32, C12, Mk, Nk;
     
    Vector3D Pos_change = LastPos - FirstPos; 
    Vector3D Cross12 = Vector3D.Cross(FirstGravVector, LastGravVector);
     
    D11 = Vector3D.Dot(FirstGravVector, FirstGravVector); 
    D22= Vector3D.Dot(LastGravVector, LastGravVector); 
    D12 = Vector3D.Dot(FirstGravVector, LastGravVector); 
    D31= Vector3D.Dot(Pos_change, FirstGravVector); 
    D32= Vector3D.Dot(Pos_change, LastGravVector);
    C12 = Vector3D.Dot(Cross12, Cross12);
     
    Mk= (D22*D31 - D32*D12) / C12; 
    Nk= (D12*D31 - D32*D11) / C12;
    Vector3D m = FirstPos + Mk * FirstGravVector;
    Vector3D n = LastPos + Nk *LastGravVector;
    
    return ((m+n)/2); 
    }
    
    EDIT: I made small change to my post to make the math more symmetric.
     
    Last edited: Dec 4, 2015
    • Like Like x 1
  14. Pennywise Apprentice Engineer

    Messages:
    338
    Thanx! I'll use new code.
     
  15. Pennywise Apprentice Engineer

    Messages:
    338
    6. Ground attack plane armed with Javeline-like homing misiles.
    [​IMG]
    Workshop link: http://steamcommunity.com/sharedfiles/filedetails/?id=572356639

    This plane carries 4 kinetic ground-attack homing missiles.

    Used mods:
    1. Aerodynamics by Digi: http://steamcommunity.com/sharedfiles/filedetails/?id=473571246&searchtext=aerodynamic
    2. Containers by Inferi: http://steamcommunity.com/sharedfiles/filedetails/?id=496566389&searchtext=container

    Short instruction:
    Press "4" to start locking target (crosshair on target)
    Press "5" to stop locking.
    Press "7" to launch rocket in evasion mode. It will go in a spiral trajectory and align precisely to target only when 300 m left till impact.
    Press "8" to launch rocket in precise evasion mode. It will go in a spiral trajectory and align precisely to target when 500 m left till impact. This mode combines precision and evasion.
    Press "9" to launch rocket in precise precision mode. No spiraling, this mode is for hitting small unprotected targets.
     
    Last edited: Dec 9, 2015
    • Like Like x 2
  16. Pennywise Apprentice Engineer

    Messages:
    338
    7. In progress: Planetary mining bot.

    Hello, engineers. Here are some pictures of planetary mining robot. It mostly acts like my old harvesters, but i hope to add a couple of cool features when it will be ready for workshop.

    [​IMG]
    [​IMG]
    [​IMG]
     
    Last edited: Jan 23, 2016
    • Like Like x 6
  17. 4o Apprentice Engineer

    Messages:
    316
    BATTLE! BATTLE!

    i've also made planetary miner. i suggest a spar) then we mate our creations and hope the baby will inherit best features (c). what do you say?
     
    • Like Like x 1
  18. Pennywise Apprentice Engineer

    Messages:
    338
    It would be a pleasure=) but mine is still uncomplete. I guess, i will make it ready next week, than we can test our creations and maybe tube this game.

    Can i see your robot? have you published it?
     
    Last edited: Jan 31, 2016
  19. Pennywise Apprentice Engineer

    Messages:
    338
    "Octopus" Planetary mining robot.



    Workshop: http://steamcommunity.com/sharedfiles/filedetails/?id=619449097

    This is a full-auto planetary mining robot. It can mine resources in 2 different regimes.

    • "Ore field mining". You all have seen ore-containing dark spots on planets. This mining regime is desined to mine these dark spots. Drone will mine multiple vertical shafts one-by-one. It will make a little horizontal shift after each run.
    • "Rock scavenging". In this regime drone will find and mine rocks, also in full-auto mode. (Thanx to @Innoble for his awesome planet scanner).

    In both regimes drone will return to base connector in 2 situations: low battery charge or critical cargo mass reached. When docked to base, it will unload all mined resources to containers with names "BaseCargo1", "BaseCargo2".. and stay docked with thrusters turned off untill batteries charged to more then 95%. Than it will repeat cycle again and again untill maximum shaft quantity is drilled or untill all scanned rocks are collected.

    Now about settings and calibration.

    Before start mining you must calibrate drone on your planet. Here is how to do that step-by-step:

    1. Find planet center.
    • Go to 3rd hotkey tab in drones cockpit. Press "1". - Script will memorize 1st location and corresponding gravity vector.
    • Fly horizontally 300-500m and press "1" again. - Script will get 2nd location and its corresponding gravity vector, intersect 2 grav vectors and find planet center. Planet center will be memorized automatically, you won't need to find it again while mining on this planet.
    2. Calibrate atmo thrusters.
    This step is just a little tricky, but nothing too difficult. Drone is already calibrated for planets in standard scenarios. But if you want to mine on moons (some of them have atmosphere too) or on custom planets, you need to do the fallowing.
    • Go to 3rd hotkey tab in drones cockpit. Press "3". - You will see your current distance to planet center (i'll call it altitude).
    • Go to terminal window and set one of horizontal thrusters to full override, remember how much kN is it's max output on this altitude (and altitude too).
    • Get significantly higher, than where you've just been.
    • Repeat step 2. Remember your second altitude and max thruster output.
    • Now you have 2 measured points for linear equation: maxThrust = k * Altitude + b. Like in old good times in school, solve this equation, find k and b. For lazy ones k = (Thrust2-Thrust1) / (Altitude2 - Altitude1), b = Thrust1 - k * Altitude1.
    • Set ThrusterK and ThrusterB variables in the begining of main script (Octopus1PB_Nav).
    3. Set safe height of flight.
    Drone has no sensors and can not retrieve it's elevation above landscape, so it will orient itself vertically only by distance to planet center, which i've called "altitude" here.
    • Get to altitude, you find "collision-safe" for your current tasks and press "9" in 1st htkey tab of cockpit.
    • You may set new collision-safe height, when you want. It wont affect mining.
    4. Set Inventory multiplier.
    Inventory mult is an option, you choose when starting a new game. Drone must know this number to calculate it's mass correctly.
    • Open main program block (Octopus1PB_Nav), find InvMult variable in the begining of a script and set it to desired value. By default it's equal to 3. So, if your in-game inventory multiplier is different to 3, you have to redefine this mult in script.
    • Save and close program block.
    5. Memorize your base connector.
    • Dock to connector and press "5" on the 1st hotkey tab. You can press "5" multiple times, when you re docked. I suggest you to set connector strength to low values to prevent connector crash while docking.
    • Disconnect from connector. Now it's all done, you can go mine finally.
    • Make yourself sure, your base has some containers, named "BaseCargo1", "BaseCargo2"... If you have no containers with such names on your base, create them, or rename old containers.

    Mining modes:

    1. Ore field mining.
    • Place drone in the center of a field, you want to mine on. Your elevation above landscape must be not less then 10 m. If landscape is not flat, set elevation to 10 m above the highest point. It will prevent drone crashing while aligning.
    • Open main programmable block (Octopus1PB_Nav) and set MaxShafts to desired shafts count (if you let's say want to drill 5x5 square, set MaxShafts to 25).
    • Set DrillDepth to depth you want to drill to. (If you stay on elevation 10m and want to drill to 20m depth, set DrillDepth to 30).
    • Recompile programmable block and close it.
    • Press "6". Now drone will do everything by itself. It will dig into the ground, pull-up, align, dig new hole, fly to base and unload and repeat cycle untill MaxShafts is reached.
    2. Rock scavenging.
    • Get to height 600-800m above landscape. Check, nothing is around you closer, then 500m.
    • Press "1" on 2nd hotkey tab. - you will see @Innoble 's scanner working on the 4th panel.
    • Fly around on height 600-800m, untill you get enough rocks in your scanning results.
    • Pause scanner. Press "2" on 2nd hotkey tab. You will see it has stopped on 4th text panel.
    • Set flight height with reserve, cause rocks can bee found pretty far from your base and there is a chance to crash, if there is a hill on your way.
    • Go to 1st hotkey tab and press "7". Now drone will hunt for rocks in automatic regime.
    While drone is working, you can set it on pause at any time, by pressing "1" on 1st hotkey tab of cockpit, or by pressing a button on cockpit side. If you press it again, it will unpause drone and it will continue its job.

    Ok, now i've described all basic settings. Try to use this drone, if you are interested and feel free to contact me if you have any questions.
     
    Last edited: Feb 11, 2016
    • Like Like x 8
  20. Pennywise Apprentice Engineer

    Messages:
    338
  21. Lt_Duckweed Apprentice Engineer

    Messages:
    417
    Quick heads up, in survival, one small conveyor sorter can only provide the throughput for a little over one ejector. I see that each bank of ejectors only has one sorter, I would recommend you switch to 9 ejectors and 8 sorters per side. That should provide ample throughput.

    Edit; If you are using a script to eject, and just using the sorter as a one way door, then ignore this.

    Edit 2; I am stupid, ignore this post.
     
    Last edited: Feb 9, 2016
    • Informative Informative x 1
  22. AutoMcD Senior Engineer

    Messages:
    2,369
    Last time I just waited a while and it stopped derping out on me. That is annoying.
     
    • Agree Agree x 1
  23. Pennywise Apprentice Engineer

    Messages:
    338
    Strange, i see all ejectors working in survival. Need to test it.
     
  24. Lt_Duckweed Apprentice Engineer

    Messages:
    417
    Just realized I am an idiot. I never set the ejectors to collect all, so they are working off of the sorters pushed inventory....
     
    • Funny Funny x 1
  25. Krougal Senior Engineer

    Messages:
    1,012
    I do that all the time. I just took to keeping the sorter turned off, making a hotkey for on/off and ejector leave collect all on, hotkey throwout.
     
  26. Ronin1973 Master Engineer

    Messages:
    4,828

    Could you make an alternate version of this?

    Features should include:

    • Replace batteries with large reactors.
    • Replace each large atmos thrusters with 9 small atmos thrusters (more thrust than one large ion thruster)
    • Create a check to see if any drill head is missing or destroyed and return to base. Bonus for short range beacon that indicates the drone is damaged.
    • With added thrust, increase storage capacity.
    By not needing to recharge and by having a higher storage capacity with stronger thrusters, it could be much more efficient (time-wise) at its mining job. Having both versions would be great depending on the dictates of the game.
     
  27. Pennywise Apprentice Engineer

    Messages:
    338
    Yes, i hoped, that it will pass by itself, but it didn't.
    Now I just hope, it won't happen again =) Steam, my ass:mad:
     
    • Funny Funny x 1
  28. Pennywise Apprentice Engineer

    Messages:
    338
    I will make variations of this drone.
    Maybe, I can also convert it to freespace version with ion thrusts.
     
    • Like Like x 1
  29. Ronin1973 Master Engineer

    Messages:
    4,828

    It is already a superior design. Your designs are always first rate.
     
    • Agree Agree x 1
  30. Pennywise Apprentice Engineer

    Messages:
    338
    Thanx:). But i always think, they lack something. Now the biggest problem is user-interface. Too much things need to be edited in script code. No user input - that is a problem.
     
Thread Status:
This last post in this thread was made more than 31 days old.