<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:07:52] ⇦ Quits: xhhux (~xhhux@ip72-194-216-202.sb.sd.cox.net) (Quit: Textual IRC Client: www.textualapp.com)
L2[00:11:15] <Amanda> %give MichiBot a hit contract for a single, specific, speck of dust
L3[00:11:15] * MichiBot accepts the hit contract for a single, specific, speck of dust and adds it to her inventory
L4[00:11:31] ⇦ Quits: Hawk777 (~Hawk777@2607:c000:8293:d900:fa6c:74a4:2f0a:4ea3) (Ping timeout: 190 seconds)
L5[00:41:05] ⇨ Joins: Hawk777 (~Hawk777@2607:c000:8293:d900:fa6c:74a4:2f0a:4ea3)
L6[00:46:05] <Amanda> %choose iced creams or be good
L7[00:46:05] <MichiBot> Ama​nda: be good'os, for a complete breakfast!
L8[00:46:15] <Amanda> But it's dinner time
L9[00:46:22] <Amanda> So iced creams I guess
L10[00:47:49] <CompanionCube> %tonkout
L11[00:47:50] <MichiBot> Woooo! Compan​ionCube! You beat your own previous record of 2 hours, 14 minutes and 37 seconds (By 14 minutes and 40 seconds)! I hope you're happy!
L12[00:47:51] <MichiBot> Compan​ionCube has tonked out! Tonk has been reset! They gained 0.002 tonk points! plus 0.002 bonus points for consecutive hours! Current score: 0.37244, Position #2 Need 0.03342 more points to pass Forec​aster!
L13[00:50:33] <Amanda> %give MichiBot the law book of the jungle
L14[00:50:34] * MichiBot accepts the law book of the jungle and adds it to her inventory
L15[00:50:50] <Amanda> %choose waves; em or pressure
L16[00:50:50] <MichiBot> Ama​nda: pressure waves
L17[01:06:51] ⇦ Quits: Vexatos (~Vexatos@pd9e21222.dip0.t-ipconnect.de) (Quit: Insert quantum chemistry joke here)
L18[01:08:42] * Amanda offers elfi a cat-ears headset to listen to her waves with her
L19[01:09:24] <ࡀ​ࡀ> Whee
L20[01:37:43] ⇨ Joins: ti85nab (~ti85nab@ns3036085.ip-193-70-81.eu)
L21[01:37:44] ⇦ Quits: ti85nab (~ti85nab@ns3036085.ip-193-70-81.eu) (Client Quit)
L22[01:52:53] * Amanda yawns a big toofy yawn, lays her head on Elfi, deciding to take a zzzzmew early, maybe she can go back into the full dive universe, where she can buy a scanner which looks like a dilapidated truck half-buried in concrete, and scan for the angels who are realigning the Sol system before it's to late and she has to restart the universe again
L23[01:53:20] <Amanda> Night girls
L24[02:38:16] ⇨ Joins: lily (~lily@122-56-210-176.mobile.spark.co.nz)
L25[02:38:37] <lily> Izaya: permission to port Minitel to ComputerCraft, while OC is stuck in 1.12 limbo?
L26[02:38:56] <Izaya> go for it
L27[02:39:07] <lily> thanks
L28[02:39:07] <Izaya> license says you can, but also, hell yeah
L29[02:39:10] <Izaya> :D
L30[02:39:19] <lily> I always like to ask for permission
L31[02:39:22] <lily> license or not
L32[02:39:30] <Izaya> a good policy
L33[02:39:47] <lily> because, sure, the license can permit it but the developer might not want you to do something
L34[02:39:59] <Izaya> might be something else in the works or something
L35[02:40:04] <lily> hm?
L36[02:40:12] <Izaya> if you don't ask you wouldn't know
L37[02:40:18] <lily> ah, fair
L38[02:40:18] <Izaya> (there isn't in this case, but-)
L39[02:40:28] <lily> there is now :P
L40[02:40:40] <Izaya> would be interesting to see OC and CC interoperate over minitel though
L41[02:40:52] <lily> they *can* send data together iirc
L42[02:40:55] <lily> using adapters
L43[02:41:03] <Izaya> yeah you can hook up CC modems to OC computers too IIRC
L44[02:41:18] <lily> this is 1.19.3 though, so no OC unfortunately
L45[02:41:21] <Izaya> might be interesting to use CC computers as cheap terminals or something
L46[02:41:26] <lily> not sure if the name SwitchCraft rings any bells?
L47[02:41:35] <lily> this is the third iteration
L48[02:41:45] <Izaya> Not off the top of my head
L49[02:42:02] <lily> it's a server focused on computers
L50[02:42:06] <lily> SC2 had OC (was 1.12)
L51[02:42:15] <lily> SC3 is 1.19.3 and they reimplemented 3D printers for CC
L52[02:42:24] <lily> and Plethora too
L53[02:43:54] <Izaya> sounds pretty neat
L54[02:47:03] <lily> it is
L55[02:47:10] <lily> https://sc3.io if you ever feel inclined
L56[02:54:20] <Izaya> hmm a shame I'm not very into CC; maybe eventually.
L57[02:56:19] <lily> yeah, OC supreme
L58[02:56:27] <lily> however, it is better than nothing
L59[03:21:47] <Mic​hiyo> %tonk
L60[03:21:47] <MichiBot> Eureka! Mic​hiyo! You beat Compan​ionCube's previous record of <0 (By 2 hours, 33 minutes and 57 seconds)! I hope you're happy!
L61[03:21:48] <MichiBot> Michiyo's new record is 2 hours, 33 minutes and 57 seconds! Michiyo also gained 0.00257 tonk points for stealing the tonk. Position #3. Need 0.06019 more points to pass Compan​ionCube!
L62[04:10:39] ⇦ Quits: lily (~lily@122-56-210-176.mobile.spark.co.nz) (Ping timeout: 186 seconds)
L63[04:15:28] ⇨ Joins: Josh_ (~Josh@2600:8806:9081:2030::29d)
L64[04:17:17] ⇦ Parts: Josh_ (~Josh@2600:8806:9081:2030::29d) ())
L65[04:18:47] ⇨ Joins: cat2002 (~Josh@2600:8806:9081:2030::29d)
L66[04:55:14] <Forec​aster> %sip
L67[04:55:15] <MichiBot> You drink a diluted bombastium potion (New!). Forecaster suddenly forgets a random piece of trivia.
L68[05:20:09] ⇦ Quits: cat2002 (~Josh@2600:8806:9081:2030::29d) (Read error: Connection reset by peer)
L69[06:03:21] <Va​ur> %tonk
L70[06:03:21] <MichiBot> Eureka! Va​ur! You beat Mic​hiyo's previous record of 2 hours, 33 minutes and 57 seconds (By 7 minutes and 36 seconds)! I hope you're happy!
L71[06:03:22] <MichiBot> Vaur's new record is 2 hours, 41 minutes and 33 seconds! Vaur also gained 0.00039 (0.00013 x 3) tonk points for stealing the tonk. Position #4. Need 0.14141 more points to pass Mic​hiyo!
L72[06:28:32] ⇦ Quits: Aino (~nia@ayame.servers.aura.moe) (Ping timeout: 190 seconds)
L73[06:29:47] ⇨ Joins: Nia (~nia@ayame.servers.aura.moe)
L74[06:33:56] <PwnageP​ineapple> Well my TIS-3D and Create integration addon is coming along nicely. Got the content observer working, and stressometer implemented
L75[06:34:16] <PwnageP​ineapple> Next on the list is testing the stressometer and then doing the speedometer
L76[08:15:49] <non​cog> Message contained 4 or more newlines and was pastebined https://paste.pc-logix.com/kidopopuro
L77[08:16:51] <non​cog> Feel free to build on all of this. Many of these details change with implementation. I hope someone finds this to be an interesting design problem to play with.
L78[08:19:07] <Forec​aster> This is very easy with Railcraft + OC
L79[08:19:12] <Hawk777> Gonna get a lot of different answers depending on lots of constraints you haven’t explained. For example, is this vanilla Minecraft, or are there mods involved (obviously, given the channel, OC)?
L80[08:19:14] <non​cog> If you look up anything related to mine cart destination selection you’ll find that people choose their destination at the start and ride separate lines to it. The challenge here is to make universal lines that automatically switch to send the player to their selected destination.
L81[08:19:23] <non​cog> Stipulation my bad no railcraft allowed.
L82[08:19:34] <Hawk777> I actually did something similar in vanilla.
L83[08:19:54] <Hawk777> For a small network.
L84[08:20:11] <Forec​aster> well I'm not gonna do it, mostly because I'm busy
L85[08:20:11] <non​cog> Mods can be involved but no railcraft. Many packs and servers I would see using this on don’t have that.
L86[08:21:34] <Hawk777> When you depart, your destination is encoded as a binary number and sent along redstone wires. There are periodic detector rails which pass the value from one track section to the next, allowing carts to follow each other on the same line to different destinations with some spacing. At a junction, the number is unpacked and switches are set accordingly, as well as a new number calculated to send to the next junction. I didn’t bother
L87[08:21:34] <Hawk777> ng junctions to 3×3 though, and I use a single track in both directions, not two tracks.
L88[08:22:07] <non​cog> >Forecaster: well I'm not gonna do it, mostly because I'm busy
L89[08:22:07] <non​cog> Lol same but I figured it’s a fun challenge even just for ideas
L90[08:22:48] <Hawk777> The junctions themselves look reasonably tidy (as making the track layout tidy was something I wanted), but each one has quite a large circuitry vault underneath it.
L91[08:23:13] <non​cog> >Hawk777: When you depart, your destination is encoded as a binary number and sent …
L92[08:23:13] <non​cog> Part of the challenge of the above that I should have specified too is that it should be capable of working over huge distances.
L93[08:23:20] <Hawk777> There is no automatic route calculation, either; all the routes are hardcoded.
L94[08:23:49] <Hawk777> Oh, this *DOES* work over huge distances. See the part where “There are periodic detector rails which pass the value from one track section to the next”. That means no single signal needs to travel a long way; instead, the destination information travels along with the player, section by section.
L95[08:24:08] <Hawk777> You never need an entire track to be loaded at once, because the number travels with you.
L96[08:24:20] <Hawk777> Of course that only works for carts occupied by players, not for unattended empty or chest carts.
L97[08:24:55] <non​cog> Oh okay, how many of these wires would need to be used? And would it support duplex communications?
L98[08:25:09] <Hawk777> log_2 of the number of destinations.
L99[08:25:16] <Hawk777> Double that for bidirectional travel.
L100[08:25:34] <Hawk777> Just have separate wires for the purpose.
L101[08:26:33] <Hawk777> If you have two clusters with a long track between them, you can reduce the wiring under the long track because you know, if you’re travelling along that long track, you’re obviously not going to a destination behind you.
L102[08:28:33] <Hawk777> Alternatively, if your stations are mostly along a line, you can reduce wiring by a similar argument, e.g. if you depart a station northbound, you don’t need enough wiring to hold ID numbers for all the stations south of you.
L103[08:29:37] <non​cog> Ideally it shouldn’t have wires but that is a valid solution. I didn’t really define a lot of constraints well because I wasn’t thinking and the discord message size was maxed. The main thing here is the idea of universal rails and automatic destination switching and the communication for that between all of these nodes to be handled automatically over huge distances with possible many intersections. In my dream version there is no wire. Just
L104[08:29:37] <non​cog> rails, smart intersections and smart stations. It just works like magic. Where the user chooses a place and goes. And ideally users should be able to hook into this system and have their station automatically become a new consideration in the routing without much knowledge about how it works.
L105[08:30:16] <non​cog> And it should support multiple users traveling the same lines at the same time in all directions. Which is where the whole dumb tracks but smart intersection thing comes from.
L106[08:32:08] <non​cog> I imagine that with wires there would be communications issues. Especially considering a messy network of intersections and users sending signals across the same wires. Which would require greater and greater number of wires and what not to separate if not developing some communication protocol or better method of representation idk
L107[08:33:17] <non​cog> Another issue is dead carts on the track. I should have stipulated that the idea behind this whole thing is to be as robust as possible but as simple as possible for the user leading it to be ultimately hands free.
L108[08:33:53] <non​cog> Which is why I figured open computers would be the dependent mod in question. And you guys seem like you like a challenge lol
L109[08:34:00] <Hawk777> Ah. All easy with OC of course. The conceptually easiest option is probably a central control computer that knows the topology of the entire network, and other computers (at the stations and junctions) that just act as I/O devices. Communication can be done with linked cards, so wiring over distance is not needed. Each time a player departs a station, they choose their destination on a computer, which is sent to the central controller.
L110[08:34:00] <Hawk777> t has to do is remember the order in which carts are in each track section and which destination each one has. A junction computer can be told where to route each cart as it approaches, and reports back once the cart has passed the junction, so the central controller then knows to adjust the junction for following traffic. Automatic routing is easy; once the central controller knows the topology (e.g. when you build a new station, you
L111[08:34:00] <Hawk777> ell it how it’s hooked onto an existing junction), it can just run a graph search (e.g. Dijkstra) to figure out how to route carts.
L112[08:34:31] ⇦ Quits: Amanda (~m-yt727s@2601:46:c601:ef1:66f7:ffa3:4a93:a0d4) (Ping timeout: 190 seconds)
L113[08:35:00] ⇨ Joins: Amanda (~m-yt727s@2601:46:c601:ef1:b371:c4da:1ae1:5f42)
L114[08:36:02] <Hawk777> Dead carts might not be a huge problem; if your boosters are close enough together, even an empty cart should keep moving. If the chunk unloads because the rider logs out, then the cart will stop moving, but I think it will start up again when the next player comes up behind it, at which point the routing logic still works, no?
L115[08:38:25] <non​cog> >Hawk777: t has to do is remember the order in which carts are in each track sectio…
L116[08:38:25] <non​cog> Yeah I like this approach, it’s basically what I envision. Many parts are simple or obvious implementation like doing shortest path calculation but all the details of this would be the implementation challenge. For this part, why go with remembering the ordering of carts in each track? Primarily to avoid having a unique identifier for the cart somehow? So that we can just use ordering and updating of position to “know” rather than explicitly
L117[08:38:26] <non​cog> identify?
L118[08:38:59] <Hawk777> Well, it’s because actual cart identities don’t accomplish anything. The only thing the system cares about regarding any particular cart is its destination.
L119[08:39:17] <non​cog> I’m not familiar with all of OC capabilities but can’t it get the UUID of the player?
L120[08:39:45] <Hawk777> The username of the player touching the screen, yes. The username of the player shooting past in a minecart. I don’t think so?
L121[08:40:58] <non​cog> Yeah I don’t know either that’s more of the unknown details that I figured could be enlightened by the community, just like how you showed you don’t need networking since the cards can be linked. I forgot that.
L122[08:41:56] <Hawk777> If the server in question has Computronics in addition to OC, it looks like you might be able to use a radar to find player names as they pass by.
L123[08:43:08] <Hawk777> Computronics also has a “digital detector” which apparently generates a Lua event when a minecart passes over it; unfortunately it appears to be undocumented so I have no idea what information that event contains.
L124[08:44:57] <non​cog> Okay cool. So assuming we can detect a unique attribute identify a player as they approach, that should eliminate much if it all of the switch doing any form of tracking/updating or in general of state duplication, and it should just enable a central computer to maintain a routing table and each switch accesses it and acts accordingly given some player at it?
L125[08:45:21] <Hawk777> *Maybe* the OC motion detector? Its related signal <https://ocdoc.cil.li/component:signals#motion_sensor_block&gt; has an “entity name” field, but it’s marked optional and I don’t know if that means the actual player name, or if it would just be something like “player” (e.g. to distinguish from “itemstack” or whatever).
L126[08:47:12] <Hawk777> Sure, if you can identify a player, the problem becomes quite easy. When a player launches, the central computer can just tell each junction along the route “when player X approaches, send them out exit direction Y”, and then the central computer no longer needs to be involved, the junctions can just follow orders to make the entire trip work.
L127[08:47:24] <Hawk777> No state data needs to be maintained at all.
L128[08:49:17] <non​cog> Well somewhat, this issue with too simplistic of an implementation like an if command is that will be put onto that switches stack but then what if the player never makes it there and it remains there and the next time they ride it and want to go elsewhere but executed the old command for that player. There needs to be a method to clear it. I know that’s all semantics and anyone would catch that implementing it but just saying SOME state needs
L129[08:49:17] <non​cog> maintained or at least reset.
L130[08:49:17] ⇦ Quits: Hawk777 (~Hawk777@2607:c000:8293:d900:fa6c:74a4:2f0a:4ea3) (Quit: Leaving.)
L131[08:50:54] ⇨ Joins: Hawk777 (~Hawk777@2607:c000:8293:d900:9c1f:3547:388a:5925)
L132[08:51:37] <Hawk777> No no no, here’s the thing.
L133[08:52:19] <Hawk777> On any given route, from any starting point to any destination, a player will only ever traverse a given junction at most once—if you ever pass through a junction twice on the same trip, you’re doing something wrong, and you must have a loop in your route.
L134[08:52:36] <Hawk777> So that means every junction needs to hold just one output direction per player, which is replaced whenever the player starts a trip.
L135[08:53:00] <Hawk777> There is no stack, just a table mapping from player name to exit direction.
L136[08:55:34] <non​cog> Yeah so you’re updating that table for each switch involved for each players ride every time. In contrast to the above if state is managed centrally it can be more easily reset without doing it for each intersection. And there would be no odd previous state issues or something if for some reason the value was never reset like if the player never made it or the server restarted. Then the switches all have the same job/program and never do
L137[08:55:34] <non​cog> anything different they just look up for a given player they see which direction to send them in. And shouldn’t need to reset any info or report anything or take any commands.
L138[08:55:57] <Hawk777> But why do you *care* if the state is not reset, or if the player never makes it there?
L139[08:56:13] <Hawk777> If the player doesn’t make it there on a given trip, the state is not used, so the state doesn’t matter.
L140[08:56:32] <Hawk777> It won’t affect their next trip either, because at the start of the trip, every junction along that trip’s route is configured appropriately.
L141[08:57:03] <non​cog> I do see your point
L142[08:57:12] <Hawk777> And every junction *can* run the same program.
L143[08:57:31] <Hawk777> It just has e.g. a table of the form {"Hawk777": "north", "noncog": "south", "someone_else": "east"}.
L144[08:57:36] <Hawk777> That’s it.
L145[08:57:59] <Hawk777> Whenever anyone starts their trip, the central computer sends a set of (playername,direction) pairs to all the junctions that will be involved in the trip.
L146[08:58:10] <Hawk777> They just update their table using that data.
L147[08:58:22] <Hawk777> Whenever someone approaches, they send them in the designated direction.
L148[08:58:41] <non​cog> Which in this setup would reduce the number of communications sent compared to what I said too since the intersections never look anything up
L149[09:00:06] <Hawk777> A big benefit to this system is this. When a cart is rolling towards a junction, the junction needs an answer *fast*; if the central computer is too busy to answer quickly, the cart might be misrouted. But each junction computer is not doing much work, so if it already has the answer in its local memory, that is no problem. On the other hand, if the central computer is busy, it is fine if the cart doesn’t launch from its starting poi
L150[09:00:07] <Hawk777> one or two seconds, enough time for the central computer to get the full route loaded.
L151[09:00:38] <non​cog> Good point good point
L152[09:00:56] <Hawk777> You’ve moved the computational bottleneck from real-time (needs to answer fast enough for a rolling cart) to non-real-time (cart is held at its starting point until the work is done).
L153[09:01:07] ⇨ Joins: Vexatos (~Vexatos@pd9e21222.dip0.t-ipconnect.de)
L154[09:01:07] zsh sets mode: +v on Vexatos
L155[09:02:50] <non​cog> >Hawk777: You’ve moved the computational bottleneck from real-time (needs to answer…
L156[09:02:51] <non​cog> I’m a little confused by what you mean cart is held at starting point until work is done. Calculating the route would require this anyway unless you mean at each intersection
L157[09:03:39] <Hawk777> Ah, what I mean is, the computational bottleneck is probably the central computer. So by doing it this way, you don’t launch the cart until the central computer has no more work to do at all.
L158[09:03:54] <Hawk777> And as long as you haven’t launched the cart, the problem is not real-time yet.
L159[09:04:35] <Hawk777> I was contrasting preloading the route at all junctions, versus only sending routing data to the junctions as a cart approaches them.
L160[09:07:07] <non​cog> Okay so it seems we have the automatic intersections pretty much fleshed out. What about the stations? I imagine them as pretty simple and running the same program each. Where it just sends reports itself to the central server to be considered a node on the graph and a destination and identifier of the player to do the route calculation. I think that would make it auto discoverable and handle the routing and then get back a ready to start signal
L161[09:07:07] <non​cog> from the central server and output a red stone signal to give you the cart and send you off. Do you see any issues or improvements with this?
L162[09:09:09] <Redston​eParkour> Hawk777: do note that wanting to send the route in advance requires all computers along the route to be active, and therefore chunkloaded, which may not be desired
L163[09:09:36] <non​cog> Yeah that was also part of some of the unwritten considerations I didn’t put in lol
L164[09:09:39] <Hawk777> Nope, that’s about it. The central server can send a list of all the destination names. The station computer displays the list and lets the user choose their destination before getting into the cart, and sends the choice to the central server. Once the central server has set all the junction routing information, it tells the station computer to launch, and off you go.
L165[09:09:43] <non​cog> But no hard requirement on that one
L166[09:10:05] <Hawk777> Ah, true.
L167[09:10:43] <Hawk777> You will need some way to inform the central computer of the network topology (e.g. “if you go south from junction A, you get to junction B” or “station C is connected to the north exit from junction A” or whatever).
L168[09:10:50] <Hawk777> That could just be programmed in by hand.
L169[09:10:58] <Hawk777> You’d only have to do it in one place.
L170[09:12:21] <non​cog> So we have the basic full system as follows: Central server. Which has I/O of stations and intersections. Each of these has devices to handle the rail and minecraft related stuff which we don’t necessarily need to prototype here. Now let’s consider the more advanced things.
L171[09:12:56] <non​cog> First would be auto discoverable topology. How could a station and intersection or two intersections realize they are connected?
L172[09:13:11] <non​cog> Coordinate comparison? And how could that be done quickly
L173[09:13:31] <Redston​eParkour> You send a minecart along the rail and check if it arrives somewhere else
L174[09:13:56] <Hawk777> You’ll want to think a bit about how to design a station so the cart doesn’t launch before you sit down. That could be by having the destination select screen accessible while sitting, or by having a separate Ready button, or by having a detector to detect a sitting player.
L175[09:14:22] <non​cog> I imagine that the intersection should be set up to remove empty carts from the system
L176[09:14:45] <Redston​eParkour> I believe RailCraft has a detector for checking if a player is in a minecart
L177[09:14:48] <Hawk777> Personally I would just enter that information by hand—each time you build a new piece of infrastructure, you tell it how it’s connected to the existing network; that’s a pretty small amount of effort next to actually building the stuff.
L178[09:15:01] <Hawk777> Yes it does, but also Railcraft was likely unacceptable.
L179[09:15:26] <Hawk777> I am not certain whether coordinate comparison could work, because I don’t think computers know their own location.
L180[09:15:51] <non​cog> Ideally dumb users should be able to just connect input and output rails and load a new computer screen assuming their station functioned as expected. That’s why I was questioning automatic topology.
L181[09:17:13] <Hawk777> And in any case, that doesn’t necessarily reveal topology—two junctions could be northwest/southeast of each other, and say the east exit from the NW junction goes to the north exit of the SE junction. But it could equally be the case that the south exit from the NW junction goes to the west exit of the SE junction. Or even something less obvious. Tracks might follow non-straight-lines or non-shortest-paths due to terrain or other
L182[09:17:15] <Hawk777> les.
L183[09:17:28] <Hawk777> I think the only way you can discover is as RP said to send a cart along it.
L184[09:18:59] <Hawk777> But is it really such a big problem, that when someone has spent all the effort to build a station building and a bunch of track, when they boot up their station computer for the first time, it asks them “what is the name of this station?”, “what junction is this station connected to?” (with a list, and they just have to pick the proper answer; you could have a convention that every junction has a sign with its name visible), a
L185[09:19:00] <Hawk777> which side of the junction is it connected to?”.
L186[09:19:24] <Hawk777> Likewise when you build a new junction.
L187[09:22:03] <non​cog> Okay good point. Stipulating all inputs of each intersection are polar opposites, meaning that north and south of two are linked, etc. we could then assume topology a bit better but you brought up the point that this also doesn’t necessarily tell us which route is shortest in terms of distance or time traveled but instead the least number of vertices/junctions to be made. Assuming we want the true shortest time for a user to get to a location
L188[09:22:04] <non​cog> wouldnt we need a cost value for the length of the edge/connection? Again making this pretty impossible aside from actually measuring using a cart. Unless we could just get the coordinates of each computer automatically then we can just know the length of the connection.
L189[09:23:05] <non​cog> Yeah it might just take simple solution like for each computer setup it asks a question for each n connections.
L190[09:23:26] <Redston​eParkour> noncog: how about we time how long the cart takes to arrive and use that as a cost value?
L191[09:24:08] <Hawk777> Ah, I didn’t think the polar-opposite assumption was reasonable. I thought you could leave a junction southbound, take plainline track which curves, and arrive at a location to the southeast travelling eastward.
L192[09:24:40] <Hawk777> Note that you only need costs if you expect the graph to be non-tree-structured.
L193[09:24:44] <Hawk777> I.e. have redundant links.
L194[09:24:53] <non​cog> >RedstoneParkour: noncog: how about we time how long the cart takes to arrive and use that …
L195[09:24:53] <non​cog> Basically saying that for a new connection we don’t know it’s cost yet but we will eventually and just record that? This is becoming similar to how routers function at this point lol they can change the routing table whenever a route becomes bad or unreachable by getting its cost actively.
L196[09:24:54] <Hawk777> Otherwise there is only one possible route, and the cost is irrelevant.
L197[09:26:55] <non​cog> >Hawk777: Otherwise there is only one possible route, and the cost is irrelevant.
L198[09:26:56] <non​cog> Im not sure if I would have this structure or not. The idea of automatic topology initially in my mind was related to a user automatically connecting their station to the network and knowing which intersection it goes to. But they could also just input that value like you said.
L199[09:27:06] <Redston​eParkour> I did indeed have the idea of treating each minecart as a packet and using routing algorithms to route the minecart the correct way
L200[09:28:15] <non​cog> Okay let’s assume that topology is taken care of even if we haven’t landed on a single solution. That aspect can be handled and we know that. Other concern. I believe sometimes you lose your mine cart when you log out or the server restarts. I don’t know if that is true for all versions of the game. How could one handle the case where a user is abandoned on the line?
L201[09:28:33] <Hawk777> Well, obviously no computer system can handle that.
L202[09:28:39] <Hawk777> Someone has to physically remove the lost cart.
L203[09:28:46] <Hawk777> Otherwise the next traveller will just crash into it.
L204[09:29:03] <non​cog> Assume that it will make it to the next intersection based on how the line is made.
L205[09:29:06] <Hawk777> Your only choices are to send the next traveller into the section anyway, letting them crash, or to hold them back at a signal indefinitely.
L206[09:29:35] <Redston​eParkour> Well space the powered rails in such a way that the minecart automatically stops after some distance if the player exits the minecart
L207[09:29:37] <non​cog> The real issue is detecting that a player is stuck on the line, we can get them a cart or something. But how can we tell if this occurs?
L208[09:30:12] <Hawk777> Well, can’t they walk to the closest station?
L209[09:30:20] <Kristo​pher38> Cart dispenser on every junction?
L210[09:30:22] <Hawk777> And if the answer is no, maybe build more stations :D
L211[09:30:46] <non​cog> Some other assumptions are that the player will travel at a constant velocity on these lines. So if we can detect a player not moving at that velocity it must mean they’re out of the cart.
L212[09:31:57] <Hawk777> Anyway, I’ll leave with one other thing to consider. In addition to the fairly well-known Dijkstra’s algorithm, there is another called Floyd-Warshall. Dijkstra’s calculates the shortest path from *one* starting point to every destination. F-W calculates the shortest path from *every* starting point to every destination. It’s more expensive to run, but given the answer it produces, you would only have to run it when the network
L213[09:31:58] <Hawk777> ogy changes, not each time a player wants to take a trip; the route for a trip could just be looked up in the already-calculated answer.
L214[09:32:29] <Kristo​pher38> Best effort detection could just look at expected arrival time at a junction and if the player doesn't get there in that time + some leeway then we assume the cart stopped somewhere between last junction and the next
L215[09:32:31] <Hawk777> It’s only N³ in the number of nodes, which is really not bad for what you get.
L216[09:33:09] <Hawk777> And it’s actually really easy to code too.
L217[09:33:19] <non​cog> Idk about player detection using oc or other mods though. Another idea is a form of a pressure plate or something that you can ride over in a cart but can’t not activate it on foot. I believe something like that exists but now we have wired signals to handle again instead of fully wireless. Kristophers solution handles this without having to handle signaling over these possibly huge line distances.
L218[09:33:36] <Hawk777> And with that I’m off, as it’s pretty late.
L219[09:33:49] <Hawk777> A fun discussion!
L220[09:34:13] <non​cog> Yeah it was good Hawk, thanks for the conversation!
L221[09:34:17] <Kristo​pher38> A rare sight here these days
L222[09:34:38] ⇦ Quits: Hawk777 (~Hawk777@2607:c000:8293:d900:9c1f:3547:388a:5925) (Quit: Leaving.)
L223[09:36:44] <non​cog> I find that design challenges get people involved and stimulated more than a lot of things. So with your idea we could just resend carts along the line in a given interval if the player never makes it. Possible issues are that the player is not on the line any more. As in they leave the line. Now we have empty carts being sent with no player ever to continue along this journey. Of course it could time out eventually. Or perhaps, another issue is
L224[09:36:44] <non​cog> that this timing data is messed up somehow. Im not sure how well OC handled server restarts and keeping that timing.
L225[09:37:05] <non​cog> What if it restarts in the middle of a line, they lose the cart, log in, and there’s no timer running.
L226[09:37:23] <non​cog> I do like a solution like this though as it requires no sensor or wiring.
L227[09:39:12] <Kristo​pher38> Timekeeping is doable, even if the server crashes and that makes all the OC computers restart
L228[09:41:11] <Kristo​pher38> I didn't say you should resend carts to the player, just that this is a potential way to detect this. It is a rare situation anyway so I'd just leave the player to walk to the nearest station/junction
L229[09:42:31] <non​cog> The best solution would be a cost free way of detecting when a player is on the line on foot. I know weird minecraft detection systems like this exist where it doesn’t cost anything to get and send. Then we know for certain that a player truly is on the line and will only do this cart resend or however we resolve the issue when we know certainly that a player is there without having to any more calculation and tracking. I don’t know what that
L230[09:42:31] <non​cog> mechanism is though. Ideally I would like to see the system have minimal intersections and minimal computers doing minimal calculations. So that would mean that these gaps between intersections might be very long. In the mean time if a player is walking to the next one, won’t they be interrupting traffic flow for people coming on the line behind them? Can’t remember if you can stop someone else’s cart.
L231[09:43:05] <non​cog> Under that idea we do need a way to get them back onto their route and off the line as fast possible but only if we’re sure that is what’s going on.
L232[09:43:35] <non​cog> Ironically the non computer part of detecting this might be the hardest part to solve lol
L233[09:45:46] <non​cog> One potential mechanical solution is to make the floor of the railways hollow so that if a player gets off somehow they just fall out of the system.
L234[09:45:57] <Kristo​pher38> You said there's one block of space between the tracks going in both directions
L235[09:46:08] <non​cog> Idk how you float rails though.
L236[09:46:09] <Kristo​pher38> Let the player walk on that
L237[09:46:47] <Kristo​pher38> Perhaps dig a ditch there so the player on foot doesn't interfere with rail traffic
L238[09:46:57] <non​cog> >Kristopher38: Let the player walk on that
L239[09:46:57] <non​cog> But will they? Maybe ideally they’re forced to or something. I don’t want to leave it up to the choice of the player to disrupt it or not. But that is a great idea to use this spaces
L240[09:47:21] <non​cog> Perhaps modded solutions can do that
L241[09:47:52] <non​cog> Pull the player in somehow. Ideally it also get them going onto their destination sooner than later.
L242[09:48:27] <Kristo​pher38> At the end of the day you can have players destroy parts of the track and you can do nothing about that unless the server provides some anti griefing measure
L243[09:48:46] <non​cog> Yeah it most likely would be protected
L244[09:49:38] <Kristo​pher38> If someone will want to get on the tracks, they will find a way to do it
L245[09:50:00] <Kristo​pher38> Even with all the protection in place
L246[09:50:06] <non​cog> Yeah ender pearls can get you anywhere you can see lol
L247[09:50:23] <Kristo​pher38> I'm not sure you can do something about that either
L248[09:51:10] <Redston​eParkour> Wait so who would add tracks to the network? Would it be one central entity (so the owner of the network) or would anyone be able to add tracks to the system?
L249[09:52:03] <non​cog> I imagined a few central lines and stations to start and at unused intersections users could connect to that.
L250[09:52:48] <Redston​eParkour> So that means that you trust the users not to build malicious connections?
L251[09:52:58] <non​cog> And just assume that the demographic this is for is not going to misuse it or intentionally break it. It’s for iron man players who have no other means of thoughtless and safe long distance travel
L252[09:53:26] <non​cog> Yeah something like gregtech new horizons where players spend months on the pack.
L253[09:54:40] <Kristo​pher38> There is teleportation in gtnh though
L254[09:54:48] <non​cog> Basically I can just choose to take a 10 minute train ride to another person and let my game run while i do other things. And dying in an iron man gtnh server is no fun. No teleport means actual risk of death by traveling
L255[09:54:52] <non​cog> It’s iron man that’s disabled
L256[09:54:55] <non​cog> It’s made harder
L257[09:55:03] <non​cog> Even more realistic
L258[09:55:09] <Kristo​pher38> Huh
L259[09:55:42] <non​cog> Iron man mode in most games is an even harder version of it with limited capabilities to make it more challenging for good players
L260[09:56:34] <non​cog> So dying in iron man would become a real rescue mission to get your stuff back thus the need for a safe and thoughtless traveling system over huge distances.
L261[09:56:43] <Kristo​pher38> Tell me about this server of yours, surely you didn't come here to ask this without the thought of implementing it somewhere very specific ;)
L262[09:58:39] <non​cog> Lol Im actually currently not doing a play through but am gearing up to. I’ve been strapped on time but I do have two groups of servers I usually play on. One of those groups is the official Greg tech new horizons servers and they have a few that you can enable iron man on.
L263[09:59:35] <non​cog> I would most likely build this there but I do also have a very powerful dedicated server that I’ve ran modpack communities from before. So I could also just do it on my own setup. Gregtech takes months for a group of people let alone iron man mode.
L264[09:59:56] <non​cog> I graduate soon and would like to start
L265[10:01:00] <non​cog> And really handling a player without a cart on the line is the last thing needed for this railway system.
L266[10:02:04] <Forec​aster> I've gotten some steam back into my Tycoon project again
L267[10:02:13] <Forec​aster> though there's still plenty left to do there
L268[10:02:55] <Kristo​pher38> So the big question is, can the junctions be viably constantly chunkloaded
L269[10:03:12] <non​cog> Let’s just say yes for now
L270[10:03:54] <Redston​eParkour> My idea for handling a player without a cart on the line is to have the line not be able to be used until the cart is off of the line
L271[10:04:13] <Redston​eParkour> Then just have the cart stop if it doesn't have a player in it
L272[10:04:48] <Forec​aster> I really hope this is the last time I'm re-writing most of it...
L273[10:05:25] <Kristo​pher38> We're good then, though the distribution of linked cards for player made stations and junctions will have to be handled by the central authority
L274[10:06:20] <non​cog> >RedstoneParkour: My idea for handling a player without a cart on the line is to have the l…
L275[10:06:20] <non​cog> The problem remains of detecting when a player is on/off the line and not in a cart
L276[10:06:45] <non​cog> >Kristopher38: We're good then, though the distribution of linked cards for player made …
L277[10:06:45] <non​cog> Crap… good point. Any ideas on making it easy to distribute linked cards?
L278[10:06:51] <Redston​eParkour> Well minecarts behave differently depending on if they have a player inside or not
L279[10:08:00] <non​cog> In this setup it would continue on the line to the next intersection. At that point what happens to it hasn’t been defined formally but I would lean toward removing it but it also would have no effect sending it to its destination unless it would get stuck in unloaded chunks
L280[10:08:29] <Kristo​pher38> This is really out there but asking someone else through in-game chat or discord to send a drone with the linked card to your location would be a viable option :D
L281[10:08:33] <non​cog> Idk if they self load or not
L282[10:08:52] <non​cog> That’s not that wild
L283[10:09:34] <non​cog> It could be put into the program that it requests a card if it’s being run without one and how that is handled can be implemented in whatever means possible
L284[10:10:47] <non​cog> The chat is a universal messaging system though. Good free communications method
L285[10:11:32] <Kristo​pher38> Drones can hold a chunkloader and have inventory so this should work, provided they're not gated behind some ludicrous tier
L286[10:12:14] <non​cog> In the pack I mentioned they for sure are lol
L287[10:12:18] <Izaya> Can you run chunkloaders off a solar panel upgrade alone?
L288[10:12:48] <Kristo​pher38> Other than that you'd either have to have someone bring the card to the requesting player or have the player go fetch it themselves
L289[10:13:34] <Kristo​pher38> Izaya: lemme check my notes on energy usage
L290[10:13:46] <non​cog> >Izaya: Can you run chunkloaders off a solar panel upgrade alone?
L291[10:13:46] <non​cog> I asked chat gpt and it said yes lol
L292[10:13:56] <Izaya> If not you could run it off coal I guess but...
L293[10:14:12] <Izaya> non​cog: you'll have to excuse my distrust of neural networks
L294[10:14:46] <non​cog> It said that it should but the generation is dependent on sunlight level. Also would need capacitor for at night. And yeah for sure it’s said some incredibly dumb stuff to me
L295[10:16:41] <non​cog> In the past I have been able to force it to correct itself though by pointing out contradictions in stupid shit it says. It apologizes for the error and then corrects itself pretty well but fact check everything it makes a lot of convincing junk
L296[10:16:52] <Redston​eParkour> Ok so did some testing and i think you can safely repeat 1 powered rail - 24 normal rails
L297[10:17:11] <non​cog> Yeah that sounds right
L298[10:17:35] <Redston​eParkour> Doing that would also make non-occupied minecarts stop automatically, as they don't go as far as occupied minecarts
L299[10:18:04] <non​cog> Also right. My thought was to close that gap at the cost of more resources to ensure it makes it
L300[10:19:24] <Kristo​pher38> Annoyingly enough I didn't write down how much solar panels produce but I think I've seen a figure of 20% efficiency of a generator so that would mean 0,16 energy per tick, while chunkloader uses 0,6 energy per 10 ticks so yeah, you should be able to run the chunkloader off of a solar panel
L301[10:19:42] <Kristo​pher38> Moving the drone would eat up most of the energy anyway
L302[10:31:33] <Kristo​pher38> Anyway i wish i had more time to play
L303[10:31:53] <Kristo​pher38> As my semester break consists of 2 (two) whole days
L304[10:32:36] <Kristo​pher38> The next time I engage in a discussion here will probably be in 4 months
L305[10:34:28] <non​cog> Same..
L306[10:34:50] <non​cog> Thankfully it’s almost done but I might finish my other degree…
L307[10:48:54] <Forec​aster> %tonk
L308[10:48:54] <MichiBot> Heckgosh! Forec​aster! You beat Va​ur's previous record of 2 hours, 41 minutes and 33 seconds (By 2 hours, 3 minutes and 59 seconds)! I hope you're happy!
L309[10:48:55] <MichiBot> Forecaster's new record is 4 hours, 45 minutes and 33 seconds! Forecaster also gained 0.00621 (0.00207 x 3) tonk points for stealing the tonk. Position #1.
L310[12:36:17] * Amanda meows and looks around
L311[12:36:23] <Amanda> %p
L312[12:36:24] <MichiBot> Ping reply from Ama​nda 0.58s
L313[12:48:49] <S​ky> %p
L314[12:48:49] <MichiBot> S​ky: Sorry. You can't get your ping from over a bridge. You can ping irc users by passing one or more as arguments.
L315[12:48:52] <S​ky> :(
L316[12:49:07] <S​ky> My ping is beyond infinite it seems
L317[12:51:03] <Amanda> Because it'd be a useless metric, it'd be a ping from michibot, to the discord bridge bot, not to your client on discord
L318[12:51:22] <Amanda> %p Corded
L319[12:51:23] <MichiBot> Ping reply from Cor​ded 0.3s
L320[12:52:32] <Amanda> That just tells you that MichiBot and corded have 0.3s of round trip
L321[13:05:47] <S​ky> >Amanda: Because it'd be a useless metric, it'd be a ping from michibot, to the…
L322[13:05:47] <S​ky> I know
L323[13:06:08] <S​ky> Oh that's a cursed idea
L324[13:06:22] <S​ky> Ping various data centers and geolocate where michibot lives
L325[13:18:56] <Forec​aster> Previously it did just that
L326[13:19:21] <Forec​aster> But a command can tell when it's being used over a bridge now
L327[13:22:41] <luna​r_sam> all i'm saying is
L328[13:22:47] <luna​r_sam> i've got an ancient printer and a shotgun
L329[13:22:59] <luna​r_sam> if the printer makes weird noises it's getting blasted
L330[13:35:41] <Forec​aster> what's wrong with ancient printers
L331[14:49:54] <Mic​hiyo> >Sky: Ping various data centers and geolocate where michibot lives
L332[14:49:54] <Mic​hiyo> https://www.google.com/maps/place/OVHcloud+data+centre/@45.3093037,-73.8987422,17z/data=!3m1!4b1!4m5!3m4!1s0x4cc9416da9072555:0x861e89209173e3dc!8m2!3d45.3093037!4d-73.8965535
L333[14:50:05] <S​ky> Oh ok
L334[15:03:30] <Pou​Peuu> Is OC2 still being worked on?
L335[15:42:57] <Forec​aster> I dunno
L336[15:43:29] <Forec​aster> We have the same information you do
L337[16:30:22] ⇨ Joins: cat2002 (~cat2002@2600:8806:9081:2030::29d)
L338[16:30:41] <Mic​hiyo> %tonkout
L339[16:30:42] <MichiBot> Eh! Mic​hiyo! You beat Forec​aster's previous record of 4 hours, 45 minutes and 33 seconds (By 56 minutes and 13 seconds)! I hope you're happy!
L340[16:30:43] <MichiBot> Mic​hiyo has stolen the tonkout! Tonk has been reset! They gained 0.005 tonk points! plus 0.004 bonus points for consecutive hours! (Reduced to 50% because stealing) Current score: 0.32325. Position #3 Need 0.04919 more points to pass Compan​ionCube!
L341[16:31:05] <Mic​hiyo> damn, was off by 4 ._.
L342[16:35:10] <Forec​aster> 3-4
L343[16:52:09] <AR2​000> anyone know a good lua minifier ?
L344[17:00:02] <Forec​aster> I can give you a great Lua maximizer
L345[17:18:49] <Ocawes​ome101> >AR2000: anyone know a good lua minifier ?
L346[17:18:50] <Ocawes​ome101> https://mothereff.in/lua-minifier
L347[17:22:23] <SquidDev> It's interesting how few (any?) minifiers handle changes like print("foo") -> print"foo" or foo["bar"] -> foo.bar.
L348[17:23:53] <SquidDev> I'd almost suggest pairs(x) -> next,x, but I guess that one does technically isn't correct in the presence of __pairs :D.
L349[17:25:38] <AR2​000> I found this one for VS code `informagico.vscode-lua-minify` but I don't know how good it is
L350[18:11:24] <Forec​aster> %sip
L351[18:11:24] <MichiBot> You drink a fragrant spice potion (New!). Forecaster recovers some mana.
L352[18:11:42] <Forec​aster> I've forgotten all the spells though
L353[18:59:35] <Va​ur> %tonk
L354[18:59:35] <MichiBot> Potzblitz! Va​ur! You beat Mic​hiyo's previous record of <0 (By 2 hours, 28 minutes and 53 seconds)! I hope you're happy!
L355[18:59:36] <MichiBot> Vaur's new record is 2 hours, 28 minutes and 53 seconds! Vaur also gained 0.00248 tonk points for stealing the tonk. Position #4. Need 0.14993 more points to pass Mic​hiyo!
L356[19:56:54] <Va​ur> %sip
L357[19:56:54] <MichiBot> You drink a sweet avesmingo potion (New!). Vaur feels much better!
L358[20:01:25] ⇨ Joins: TredBlox (~TredBlox@host-80-41-117-45.as13285.net)
L359[20:02:02] ⇦ Quits: TredBlox (~TredBlox@host-80-41-117-45.as13285.net) (Client Quit)
L360[20:13:34] <Forec​aster> %sip
L361[20:13:35] <MichiBot> You drink a still aluminium potion (New!). Forecaster shrinks by a negligible amount until they find a wand of awkward laughter.
L362[20:13:56] <Forec​aster> Aww man, where am I gonna find one of those D:
L363[21:46:35] ⇨ Joins: A (~A@c-73-142-114-87.hsd1.ma.comcast.net)
L364[21:46:39] <A> hello
L365[21:46:57] ⇦ Quits: A (~A@c-73-142-114-87.hsd1.ma.comcast.net) (Client Quit)
L366[22:38:34] <Forec​aster> %tonkout
L367[22:38:34] <MichiBot> Willikers! Forec​aster! You beat Va​ur's previous record of 2 hours, 28 minutes and 53 seconds (By 1 hour, 10 minutes and 5 seconds)! I hope you're happy!
L368[22:38:35] <MichiBot> Forec​aster has stolen the tonkout! Tonk has been reset! They gained 0.003 tonk points! plus 0.002 bonus points for consecutive hours! (Reduced to 50% because stealing) Current score: 0.41807. Position #1
L369[22:39:27] <Forec​aster> Uh
L370[22:39:40] <Forec​aster> Weird
L371[23:16:20] <Forec​aster> %tonkout
L372[23:16:20] <MichiBot> Forec​aster: You gotta tonk before you can tonk out. For this transgression the timer has been reset.
L373[23:16:34] <Forec​aster> Oh
L374[23:16:57] <Forec​aster> I guess it actually went through but the reply got lost
<<Prev Next>> Scroll to Top