Long steps

Post your coolest Hexcasting creations here.

New topics are NOT for chatting or asking help, put those in the comments of a post or in a different forum.
stevebutnottoomany
Posts: 12
Joined: Wed Dec 28, 2022 5:07 am

Long steps

Post by stevebutnottoomany »

Long steps, formally a stride between the heights of mountains, is an item spill-less teleportation method for line of site teleportation (though the technique behind it can be easily adapted for other use cases).
https://imgur.com/a/Wry8bVV
It requires Hexal for wisps and gates, and Hex Gloop for sentinel beds.
The technique is to walk a greater sentinel to the player's raycast, greater teleport an armour stand out of the sentinel bed to the destination, lazy-load the destination with a raycasting wisp (to load the armour stand), gate the player to the armour stand, and return the armour stand to the sentinel bed.
Patterns
qqqqqqBookkeeper's Gambit: Keep 1Bookkeeper's Gambit: Keep 2Bookkeeper's Gambit: Keep 3eeeqwaeawqaawddqaqqaqeedeqaqNumerical Reflection: 1Numerical Reflection: 4wdedwqqqqqawwawawdaadaaaaqaqaaqaqwawqaawddewqaawddqqqqqewNumerical Reflection: 1.25waqawwaawqaqwawddwaawddwddwwwwqqqwwwqqeqqwwwqqwqqdqqqqqdqqBookkeeper's Gambit: Drop 1qqqwaeawaedeeeeeeqwwqaawddqqqBookkeeper's Gambit: Keep 4eeeqwaeawqwaeawaedeNumerical Reflection: 5waweeeeewawqqaeaaedaqqqaqqqqqNumerical Reflection: 2deeedqqqwwqqqwqqawdedwaqqqqqNumerical Reflection: 1deeedaadaaaqqqqqNumerical Reflection: 3deeedqaqeedeqqqwwqqqwqqawdedweeeqqaeaaeawdddeaqqeeeqaqaaNumerical Reflection: 8aqaweewaqaweeeee

Code: Select all

{
    {
        Bookkeeper's Gambit: -//return gate
        Bookkeeper's Gambit: --//armour stand gate
        Bookkeeper's Gambit: ---//armour stand
    }
    Flock's Disintegration
    Mind's Reflection
    Gate's Opening

    Mind's Reflection
    Numerical Reflection: 1
    Numerical Reflection: 4
    Division Distillation
    Blue Sun's Nadir
    

    Gemini Decomposition
    Compass' Purification
    Mind's Reflection
    Compass' Purification
    Mind's Reflection
    Alidade's Purification
    //Macro - sentinel_raycast
    Vector Reflection +Y
    Numerical Reflection: 1.25
    Multiplicative Distillation
    Additive Distillation
    Mind's Reflection
    Alidade's Purification
    Subtractive Distillation
    Jester's Gambit
    Subtractive Distillation
    Greater Teleport
    Bookkeeper's Gambit: v
    
    {
        Locate Sentinel
        Vector Reflection -Y
        Archer's Distillation
        {
            Bookkeeper's Gambit: ----//Type - armour stand
        }
        Flock's Disintegration
        Locate Sentinel
        Numerical Reflection: 5
        Zone Exaltation: Type
        Vacant Reflection
        Inequality Distillation
        {
            Scribe's Reflection
            Numerical Reflection: 2
            Selection Distillation
            Gate's Closing
            Scribe's Reflection
            Numerical Reflection: 1
            Selection Distillation
            Gemini Decomposition
            Scribe's Reflection
            Numerical Reflection: 3
            Selection Distillation
            Gate's Opening
            Gate's Closing
        }
        Vacant Reflection
        Augur's Exaltation
        Hermes' Gambit
    }
    Mind's Reflection
    Compass' Purification
    Numerical Reflection: 8
    Summon Cyclic Wisp
}
The sentinel raycast macro performs a raycast beyond range limits using sentinel walking, and is as follows:
Patterns
qqqaawddwaeawaeqqqwqwqqwqqqqaadaaNumerical Reflection: 2aadawaeawaedeaadaaaaeaawqaawddaadaadadqqqaadadaawwddwwqaqwNumerical Reflection: 15.5eqqqBookkeeper's Gambit: Drop 1, Keep 1aqdeeeeeaawddNumerical Reflection: 1Numerical Reflection: 0awdddeeeddeaqqNumerical Reflection: 3aadaNumerical Reflection: 15.5waqawwddwBookkeeper's Gambit: Drop 2, Keep 1qqaeaaeaadaaaaeaadeeeqqqBookkeeper's Gambit: Keep 1eeeNumerical Reflection: 2ewdqdweaawddNumerical Reflection: 1Numerical Reflection: 0awdddeeeddeaqqBookkeeper's Gambit: Drop 1Numerical Reflection: 3aadaNumerical Reflection: 15.5waqawwaawwaeawaeqqqwqwqqwqdeaqqeeeaadaadeaqqBookkeeper's Gambit: Drop 2waeawaedeeee

Code: Select all

{
    //stack starts with position, direction
    Jester's Gambit
    Summon Greater Sentinel 
    {
        Gemini Decomposition    
        Numerical Reflection: 2
        Fisherman's Gambit II

        Locate Sentinel
        Gemini Decomposition 
        Rotation Gambit      
        Archer's Distillation  
        Gemini Decomposition   
        Nullary Reflection     
        Equality Distillation  
        {                               
            Dioscuri Gambit             
            Subtractive Distillation
            Length Purification
            Numerical Reflection: 15.5
            Maximus Distillation   
            {
                Bookkeeper's Gambit: v-
                Charon's Gambit
            }
            Jester's Gambit
            Numerical Reflection: 1
            Numerical Reflection: 0
            Augur's Exaltation
            Selection Distillation
            Hermes' Gambit
                                           
            Numerical Reflection: 3
            Fisherman's Gambit II           
            Numerical Reflection: 15.5
            Multiplicative Distillation
            Subtractive Distillation        
            Bookkeeper's Gambit: vv-
            Vacant Reflection
            Gemini Decomposition
            Rotation Gambit                 
            Nullary Reflection
        }
        {                              
            Bookkeeper's Gambit: -     
        }
        Numerical Reflection: 2
        Flock's Gambit
        Jester's Gambit
        Numerical Reflection: 1
        Numerical Reflection: 0
        Augur's Exaltation
        Selection Distillation
        Hermes' Gambit
        Bookkeeper's Gambit: v
        

        Numerical Reflection: 3
        Fisherman's Gambit II
        Numerical Reflection: 15.5
        Multiplicative Distillation
        Additive Distillation
        Summon Greater Sentinel
        Hermes' Gambit
    }
    Gemini Decomposition
    Hermes' Gambit
    Bookkeeper's Gambit: vv
    Locate Sentinel
}
User avatar
Robotgiggle
Posts: 25
Joined: Fri Dec 02, 2022 12:38 am

Re: Long steps

Post by Robotgiggle »

This is really interesting! I spent a good while on HexxyCraft trying to figure out how to make an entity-anchored teleport that works into unloaded chunks, but I had no idea that raycasts provide a stronger chunkload than the built-in 5-tick load from teleporting an entity. It seems like, with a few modifications, you could very easily use this technique to make a dropless arbitrary GTP – just swap out the sentinel raycast with a walk-to-coordinates spell.

Given that it works to load the armor stand, I'd also say that whatever the raycast does is not a lazy-load, but rather a full entity-ticking chunkload. You could probably use this to make a wisp that keeps itself and its chunk loaded as long as it has media, which I'm sure has some very interesting applications.
stevebutnottoomany
Posts: 12
Joined: Wed Dec 28, 2022 5:07 am

Re: Long steps

Post by stevebutnottoomany »

I re-implemented this in 0.11.3, still has Hexal as a dependency, this time using Hexcassettes rather than a cyclic wisp for the delay.

As a point of interest, the raycast is loading the chunk to border level.

Code: Select all

{
    {
        // Armourstand entity reference
    }
    Flock's Disintegration                                                      // armourstand

    Mind's Reflection
    Compass' Purification
    Mind's Reflection
    Alidade's Purification
    //Macro: Sentinel raycast                                                   // armourstand vec_or_null
    Gemini Decomposition
    Nullary Reflection
    Inequality Distillation
    {                                                                           // armourstand vec
        {
            // -- offsets to try: [y, -2y, -x, x, z, -z]
        }
        Flock's Disintegration                                                  // armourstand vec offsets

        {                                                                       // armourstand vec offset
            Additive Distillation
            Gemini Decomposition
            Gemini Decomposition
            {
                // --- Type: Air
            }
            Flock's Disintegration
            Undertaker's Gambit                                                 // armourstand ovec ovec air ovec air
            Jester's Gambit
            Sorter's Purification
            Equality Distillation                                               // armourstand ovec ovec air bool_air
            Rotation Gambit II
            Jester's Gambit
            Vector Reflection +Y
            Additive Distillation
            Sorter's Purification
            Equality Distillation
            Conjunction Distillation                                            // armourstand ovec bool_both_air
            Bookkeeper's Gambit: v--                                            // ovec bool_both_air
            {
                Charon's Gambit
                Bookkeeper's Gambit: v
            }
            Flock's Disintegration
            Augur's Exaltation
            Hermes' Gambit
        }                                                                       // armourstand vec offsets spell
        Jester's Gambit
        Thoth's Gambit                                                          // armourstand vec [ovec]_or_empty
        Gemini Decomposition
        Length Purification
        Numerical Reflection: 1
        Equality Distillation
        {                                                                       // armourstand vec [ovec]
            // If we've identified a valid teleport position, we do the teleport
            Flock's Disintegration
            Bookkeeper's Gambit: v-                                             // armourstand ovec
            Gemini Decomposition
            Vector Reflection +Y
            Subtractive Distillation
            Gemini Decomposition
            Sorter's Purification
            {
                // --- Type: Air
            }
            Flock's Disintegration
            Equality Distillation                                               // armourstand ovec ovec-y bool_standing_on_air
            {
                Conjure Block
                Bookkeeper's Gambit: v
            }
            Flock's Disintegration
            Augur's Exaltation
            Hermes' Gambit                                                      // armourstand ovec

            Vector Reflection +Y
            Numerical Reflection: 49
            Numerical Reflection: 100
            Division Distillation
            Multiplicative Distillation
            Subtractive Distillation                                            // armourstand target
            Jester's Gambit
            Dioscuri Gambit                                                     // target armourstand target armourstand
            Compass' Purification II
            Subtractive Distillation
            Greater Teleport                                                    // target

            // We have the armourstand at target, now we need to enque a spell that's going to keep pinging that location until it gets the thing
            {
                {
                    // Target
                }
                Flock's Disintegration
                Gemini Decomposition
                Vector Reflection -Y
                Archer's Distillation                                           // target raycast
                Bookkeeper's Gambit: v                                          // target
                {
                    // ---- Type: Armourstand
                }
                Flock's Disintegration
                Jester's Gambit
                Entity Distillation: Type                                       // armourstand_or_null
                Gemini Decomposition
                Nullary Reflection
                Equality Distillation
                {                                                               // null
                    Bookkeeper's Gambit: v
                    Numerical Reflection: 9
                    Program Purification
                    Numerical Reflection: 1
                    Numerical Reflection: 9
                    Enqueue
                }
                {
                    {
                        // ----- Return gate
                        // ------ armourstand gate
                    }
                    Flock's Disintegration                                      // armourstand return_gate armourstand_gate
                    Gemini Decomposition
                    Mind's Reflection
                    Gate's Opening
                    Gate's Closing                                              // armourstand return_gate
                    Undertaker's Gambit
                    Jester's Gambit
                    Gate's Opening
                    Gate's Closing
                }
                Augur's Exaltation
                Hermes' Gambit
            }                                                                   // target spell
            Numerical Reflection: 1
            Rotation Gambit
            Surgeon's Exaltation
            Numerical Reflection: 1
            Numerical Reflection: 9
            Enqueue
            
            
        }
        Vacant Reflection
        Augur's Exaltation
        Hermes' Gambit
    }
    Vacant Reflection
    Augur's Exaltation
    Hermes' Gambit
}

And the sentinel raycast macro I use

Code: Select all

// Rewriting my sentinel raycast as the old one is ancient, think has some old raycast behaviour assumptions built in and haven't checked if it's from before logic changes
// Intended as a macro, raycast with longer initial line
// Input: pos_vec look_vec
// Output: vec or null, with GS at vec, otherwise GS 300 steps in lookdir
// NB Assumes player ambit in initial step, would need to modify for cases where this is inaccurate

{                                                       // pos_vec look_vec
    Dioscuri Gambit
    Archer's Distillation                               // pos look vec_or_null
    Gemini Decomposition                                // pos look vec_or_null vec_or_null
    Nullary Reflection
    Equality Distillation
    
    
    {                                                   // pos look null
        // if first raycast returns null, do the loop
        Bookkeeper's Gambit: v                          // pos look
        Numerical Reflection: 15
        Multiplicative Distillation
        Undertaker's Gambit                             // 15look pos 15look
        Additive Distillation                           // 15look newpos
        Numerical Reflection: 300
        Rotation Gambit II                              // counter 15look newpos
        {                                               // spell counter 15look newpos
            // Raycast. If raycast is null, decrement counter, step newpos, summon gs
            // elif raycast not null: return vec
            // If counter < 0 return null

            Dioscuri Gambit
            Jester's Gambit
            Archer's Distillation                       // spell counter 15look newpos raycast_or_null
            Gemini Decomposition
            Nullary Reflection
            Inequality Distillation                     // spell counter 15look newpos raycast bool_vecray
            Numerical Reflection: 4
            Fisherman's Gambit                          // spell 15look newpos raycast bool_vecray counter
            Numerical Reflection: 1
            Subtractive Distillation
            Gemini Decomposition
            Numerical Reflection: 0
            Minimus Distillation                        // spell 15look newpos raycast bool_vecray counter bool_negative
            Jester's Gambit
            Numerical Reflection: -5
            Fisherman's Gambit                          // spell counter 15look newpos raycast bool_vecray bool_negative
            Disjunction Distillation                    // spell counter 15look newpos raycast bool_vecray_or_negative

            {                                           // spell counter 15look newpos raycast_or_null
                Bookkeeper's Gambit: vvvv-              // raycast_or_null
            }
            {                                           // spell counter 15look newpos null
                Bookkeeper's Gambit: v
                Prospector's Gambit                     // spell counter 15look newpos 15look
                Additive Distillation                   // spell counter 15look updated_newpos
                Gemini Decomposition
                Summon Greater Sentinel                 // spell counter 15look updated_newpos
                Numerical Reflection: 3
                Fisherman's Gambit II                   // spell counter 15look updated_newpos spell
                Hermes' Gambit
            }
            Augur's Exaltation
            Hermes' Gambit                              // raycast_or_null
        }                                               // counter 15look newpos spell
        Numerical Reflection: -3
        Fisherman's Gambit II                           // spell counter 15look newpos spell
        Hermes' Gambit                                  // raycast_or_null
    }
    
    


    {                                                   // pos look vec 
        Bookkeeper's Gambit: vv-
    }
    Augur's Exaltation
    Hermes' Gambit                                      // vec_or_null

    Gemini Decomposition
    Nullary Reflection
    Inequality Distillation
    {   
        Gemini Decomposition
        Summon Greater Sentinel                         // vec
    }
    Vacant Reflection
    Augur's Exaltation
    Hermes' Gambit                                      // vec_or_null
}