···11+# -*- mode: org; mode: visual-line -*-
12#+TITLE: Hex Addon Planning
23#+AUTHOR: poolcritter
34#+CATEGORY: hex-addons
···89:PROPERTIES:
910:CATEGORY: hexic
1011:END:
1111-pile of old ideas, deprecated and ripe for theft
1212-*** TODO finish enumerating features
1313-:LOGBOOK:
1414-CLOCK: [2026-01-08 Thu 13:25]--[2026-01-08 Thu 13:26] => 0:01
1515-CLOCK: [2026-01-08 Thu 13:03]--[2026-01-08 Thu 13:19] => 0:16
1616-:END:
1717-if any of y'all people want to steal this, ping me so I can remove it from the list
1818-1919-- [X] [[./project/iotaworks/][patchworks]]
2020-- [X] [[./project/hexxytounge][murmur refl]]
2121-- [X] [[./project/hexxytounge/][greater reveal]]
2222-- [ ] mediaweave
2323- - [ ] wool edification
2424- - [ ] messaging frames (for mediaweave)
2525-- [ ] stringworms
2626- - [ ] shimmering stringworms
2727-- [ ] stream iotas
2828-- [ ] pattern remapping (modpacks)
2929-- [ ] pens
3030-- [ ] media pouches
3131-- [ ] NBT iotas
3232-- [ ] tripwire iotas (unimplemented)
3333-- [ ] media chiseling
3434-- [ ] (+hexical) hopper into/out of conduits
3535-- [X] (+hexical) Apply Pigment pattern
3636- - [X] works on trinkets
3737-- [ ] list manipulation patterns (where, take, rotate, drop, grep, extract)
3838-- [ ] modulo 2
3939-- [ ] vulpine gambit
4040-- [ ] tupling exaltations
4141-- [ ] snow pattern
4242-- [ ] lani gambits
4343-- [ ] dual's reflection
4444-- [X] [[https://github.com/object-Object/IoticBlocks][erase block/entity]]
4545-- [ ] pseudothoth
4646-- [ ] echo shard casting
4747-- [ ] item overstacking
1212+the misc stuff addon for doing misc addon things
1313+** Chiseled amethyst
4814*** TODO give chisels a texture
4949-*** TODO special demiplane NG handling
5050-when entering, always enter at the center
5151-when exiting, exit where you last entered from
5252-or get sent to the deep noo
5315*** TODO give tables a model in-inventory
1616+*** TODO tripwires
1717+deleted code:
1818+#+BEGIN_SRC scala
1919+hexXplat.getContinuationTypeRegistry("tripwire") = TripwireIota.Frame
2020+Patterns.register("tripwire", w"edewqwaqede"):
2121+ Patterns.mkLiteral(TripwireIota)
2222+#+END_SRC
2323+#+BEGIN_SRC scala
2424+object TripwireIota extends Iota(new IotaType[TripwireIota.type]:
2525+ override def deserialize(tag: NbtElement, world: ServerWorld): TripwireIota.type = TripwireIota
2626+ override def color: Int = 0xba4216
2727+ override def display(tag: NbtElement): Text = typeName
2828+, Object()):
2929+ override def isTruthy: Boolean = true
3030+ override def toleratesOther(that: Iota): Boolean = eq(that)
3131+ override def serialize(): NbtElement = NbtCompound()
3232+ class Frame(mishap: Mishap) extends ContinuationFrame:
3333+ override def breakDownwards(x: ju.List[? <: Iota]): Pair[java.lang.Boolean, ju.List[Iota]] = ???
3434+ override def evaluate(cont: SpellContinuation, world: ServerWorld, vm: CastingVM): CastResult = throw mishap
3535+ override def getType: Type[?] = Frame
3636+ override def serializeToNBT(): NbtCompound =
3737+ val c = NbtCompound()
3838+ val codec = mishap.getCodec
3939+ c.putString("Class", mishap.getClass.getName)
4040+ c.put("Data", codec.encodeStart(NbtOps.INSTANCE, mishap.asInstanceOf).getOrThrow(false, _ => {}))
4141+ c
4242+ override def size: Int = 1
4343+ object Frame extends ContinuationFrame.Type[Frame]:
4444+ override def deserializeFromNBT(c: NbtCompound, world: ServerWorld): Frame =
4545+ val klass = classNamed(c.getString("Class"))
4646+ val codec = klass.get.runtimeClass.getMethod("getCodec").invoke(null).asInstanceOf[Codec[? <: Mishap]]
4747+ Frame(codec.decode(NbtOps.INSTANCE, c.get("Data")).getOrThrow(false, _ => {}).getFirst)
4848+#+END_SRC
5449*** TODO crafted amethyst
5550created by a table; worth a shard
5651need to implement texture generation
···5954- [X] demiplane patterns
6055- [ ] conjure snow
6156- [ ] pseudothoth
5757+** Demiplanes
5858+*** TODO special demiplane NG handling
5959+when entering, always enter at the center
6060+when exiting, exit where you last entered from
6161+or get sent to the deep noo
6262** [[https://modrinth.com/mod/phlib][PHLib]]
6363*** TODO [#A] make a mod icon
6464probably my player head holding a quenched amethyst
6565*** TODO reimplement Flock Decomp on maps
6666*** TODO phlib ↔ [[https://modrinth.com/mod/hexthings][hexthings]] map conversion
6767*** TODO dialect conversion in general, actually
6868-** Underevaluate
6969-*** TODO create project
7070-it needs a real name
7171-*** TODO Hermes' Gambling
7272-executes given iota with a 25% chance, <ne,qqqeeaqq>
7373-*** TODO find other scrapped ideas
7468** [[https://modrinth.com/mod/iotaworks][Iotaworks]]
7569*** TODO finish implementing subscripts
7670*** TODO implement patchwork subscripts
7777-** HexxyChests
7878-*** TODO make sure everything works
7979-*** TODO make todo list
8080-** HexxyTongue
8181-*** TODO port mediaweaves
8282-*** TODO channeled reveal
8383-maybe revealing a map merges it with an internal 'channel' map?
7171+*** TODO steal labels and annotations from hex\mu
7272+probably blocked on [[IoticIotas]]
8473** IoticIotas
8574*** TODO revisit
8675does this still exist? is it still worth it?
···10190*** TODO wait for reply wrt Apply Pigment
10291**** TODO ping Miyu about [[https://discord.com/channels/936370934292549712/1011455473528098857/1459290686841946153][message]]
10392 SCHEDULED: <2026-01-10 12:00:00>
104104-*** TODO PR Apply Pigment
105105-make sure it works on trinkets
10693* Ideas
10794** TODO Spellminds
10895effectively cross-server cross-instance iota transfer bound permanenently to one specific player
···11097we need iota fmapping though
11198** TODO Liquidification greatspell
11299[[./.project.org.assets/liquidify-spell.png]]
100100+* Bugs
101101+** TODO see if latest VS2 is still incompatible
102102+** TODO fix Windows compatibility with Bind Demiplane
···11+2.0.0 engulfed hexxychests
22+2.0.0 load config from config/*.properties instead of config/jvm.properties
33+2.0.0 murmur and reveal now use separate components
44+2.0.0 !removed tripwires
···77 "Thus, I've devised a new pattern of my own. It's similar to $(l:hexcasting:patterns/basics#hexcasting:print)$(action)Reveal/$, but the message is lodged well within my mind, and I forget it instantly if I replace it with something else. It can also take a list of messages, for convenience.",
88 {
99 "type": "hexcasting:pattern",
1010- "anchor": "hexxytounge:reveal",
1111- "op_id": "hexxytounge:reveal",
1010+ "anchor": "hexic:reveal",
1111+ "op_id": "hexic:reveal",
1212 "input": "[iota] | iota",
1313 "output": "",
1414 "text": "Takes a list of iotas (or a single non-iota, which is treated as a list with one element) and embeds them in my mind persistently. Displayed iotas survive all methods that would clear a normal Reveal, and can only be cleared by another casting of Greater Reveal or my untimely demise."
···11-{
22- "hexcasting.action.hexxytounge:murmur": "Murmur Reflection",
33- "book.hexxytounge.page.murmur": "Finds the region of my mind known as the 'chat box' and adds its contents to the stack. If it cannot be found, adds Null instead."
44-}