Did I speak too soon no yeah that’s that’s better I can tell it’s just kind of weird that the trains are just snapping in and out of view but yeah for the most part it’s better hey everyone and welcome to another episode of Code with me In this series we’re going to take a look at several new features that are going to make it in the 4.0 update and I’m gonna show these to you so that you can be excited for the next update today I am going to show you some new Changes that I’ve made since the last video If you haven’t seen the previous two videos oh the train is leaving I’m gonna show you that later but if you haven’t seen the previous two videos please go on my channel and check out the playlist containing all the videos in this series I promise you that it wouldn’t be boring and if it’s too long for you just skip to the timestamps shown in the video and just from the intro of this video you already seen some trains moving but for the sake of what I’m trying to demo I think it’ll be best if I started a new super flat world so that’ll be easier for me to show you all the new features so let me go ahead and do that and the world’s ready so first things first I’m gonna do game rule do daylight cycle falls and game Rule uh do weather cycle falls and time set day okay and also difficulty peaceful because the slimes can get annoying all right so let’s grab ourselves everything we need dashboard notes today I’m just gonna mainly be showing just rails and stuff uh diamond sure maybe some one ways turnbacks remover all right So you remember from the last video I talked about some custom train combinations you can do with the sightings so let me make a Long Siding so that we can kind of have some space to play around with oh that’s actually a really long sighting let’s see how many cards this Can fit us so let’s go click on the siding let’s choose Christmas mlr SP Ade train oh calf train and what else I don’t want to go too crazy so maybe I’ll stick with some Hong Kong trains for now how many cars did I make this sighting Okay so that’s about it for the length Okay the Train’s not gonna show up yet because I still haven’t fixed the code for that and now let me go and make my station so I’m gonna go off into the distance a little bit to make my platforms I’m just gonna do um I’m gonna make two platforms at once so It’s faster I’m gonna make them three blocks apart like that I actually should have measured how long my siding was because I don’t actually know I should probably have measured everything now that I’m thinking about it oh this is very long okay doesn’t matter let’s keep going So let’s make the last platform just like uh single platform oops kind of far away a little bit curved onto the side right here and then just one platform at the end is good right through this Village oh the platform’s a little bit curved but I think it’ll be okay Uh actually let me revise these tracks right here I’m gonna make the last bit like that so there’s less overlap and I need a couple of removers and I’m gonna remove these tracks and do this and connect oh where did it go oh no I lost it Okay I found it and I connected the rails one issue that I’m immediately noticing is that when I fly around in the world like the tracks don’t load back the loading of the tracks is still a little bit weird so I’m not sure if I actually have this connected or not So as the player moves we’re supposed to be sending packets to the server so that the server can update us on what is nearby but it doesn’t do that currently so are these platforms even showing up I don’t know so let’s go to kind of the center of the Platforms and try to draw the station area okay that’s there at least so that’s going to be station one hard to navigate around because the data is sometimes not updating there will be our station two although I don’t know why it’s not showing up here either yeah our platform’s there at least So for our Depot at the siding the siding’s not even here for me to click on so that’s another issue I have to investigate all right what let me go back to my siding see if that shows up when I get here nope still not showing wait Yeah the siding’s still not showing up so I’m gonna log out and log back in and see if that works out for us okay now everything’s gone well technically our data is still there because the oh no actually everything’s here okay cool and now we have our weird train combination right here I have also added the wheels rendering the bogey went rendering and the car connections that’s just some old code that I copied over well not exactly just copying but implemented re-implemented using the new rendering method so if if there are different train types connected together so this is the head Of the Train the c1141a is the head of the train so if they both have a connector then it’s going to use the first car it’s connector type to render so this connector type is currently using the c1141a connector and then this next connector uses the M Train because That’s the next one and next connector will be using the C train and the next one will be using this calf train and so on the K train and the SP 1900 and unfortunately the mlr connection will not show up because there’s not another car behind this one All right so our train is here how many cars is this wow I made a seven car train that’s long all right let’s make our route actually we might have a slight issue where we can’t select the platforms for our root because it’s just not showing up in the dashboard Again I’m not sure why that’s the case all right let’s take a pause with the demo and check the code a little bit again all right so I think what we need to do is go into packet data that’s where we get all our of our data from And we need to make sure that our platforms are correctly updated so I’m going to put a break point right here this is the Run client cubed method so when I try to open the dashboard that’s what I just did it requests a packet from the server Which returns all the data for us so we can check our platforms they did update okay that’s to be expected our platforms are right here and these coordinates look about right yeah so we’ve got two platforms right next to each other so the x coordinates Are the same and the Z coordinate is off by just a little bit and then this is the final platform all the way at the end okay so on the client side they do update but on the dashboard it doesn’t so I wonder why that’s the case So let me go into the dashboard screen and where is our initialization method okay our initialization method is here so I’m going to put a breakpoint there when we run this how come that didn’t do anything let’s try it again okay this is our initialization and we can use the evaluate method Evaluate function here let’s go to client data dot instance dot platforms and our size is zero how come what about stations why is it zero has it not been hmm okay okay maybe that’s why this breakpoint didn’t get hit earlier as well how does the screen actually open So we’ve got our item dashboard packet open dashboard screen create so we send now when we run the client oh I see we opened the screen before we actually sync the data that’s going to be a problem because we need to see all the data before we actually open the dashboard So what I’m just doing here I switched the order of the two lines and I clicked build and the code Should hot reload sometimes it doesn’t like it when I hot reload especially when you’re changing the class structure and all that changing lambdas and stuff and sometimes there will be security Exceptions I don’t know exactly what those are but some at the time you can do hot reloads just by clicking the build button so now okay the classes are reloaded and let’s try this again we don’t need the break point anymore and let’s see the platforms are still not here I think hmm What about the siding inside here yeah the siding is here then I edit the nope I do this platforms don’t show up okay put the break point back let’s see again station show up but the platforms don’t hmm go back to packet data or the packet open dashboard right I’m gonna put a breakpoint there instead so when I do that the client code should have run client Dana dot instance dot platforms still zero so now I’m thinking maybe it has to do with the sync function let me show you what I mean if we’re in packet data and we see where We run our client code this is where we write all the data and that’s all good the platforms are written to I put my breakpoint here last time which is before the sync method has run so when we run the sync method we actually call the data sync which is okay but We check that there’s a rail corresponding to the platform if there is no rail corresponding to the platform we remove the platform so I think that’s what’s going on here because the dashboard is supposed to load all of the data if there is not a rail present on there Then the platform will disappear okay hmm that’s going to be a little problem for us so I’m thinking either we have to add a flag into the sync method or we’ll have to override it somehow I think the easiest solution would be to just put a Boolean parameter here If we should verify that platform rails are present and try to remove them because when we request all the data when opening the dashboard I don’t think it’s necessary to request all the rails as well because we won’t see them anyway so let me stop Minecraft oh hopefully oh Okay that was a bad idea because when I just quit it like that all the data didn’t save so now I have to go back and rebuild everything again that’s okay let me go back to Transportation simulation core and go to my sync method Okay so that’s in data the sync method is being used in three places so I think what I’m gonna do is I’m gonna create and overload and overload is when you have two methods of the same name but different signature Boolean do rail checks okay and this one will call sync True so by default it should do the rail checks yeah and I think this is the only place where it does that all right so let’s see yeah nothing else where else is this being used integration response let’s see actually why don’t we just pass in the parameter here Because on the server side we’re always going to want to do the checks so we built this meanwhile I want to show you an article because some people have commented on why I always use light mode for everything let me show you an article about that so I always thought light mode was easier to read Because dark text on a light background is easier to read for your eyes and the reason why you should use dark mode is mostly about power savings but it doesn’t save that much power and also the blue light the extra blue light from light Mode it helps you sleep better if you use a dark screen But it’s not really something you should worried about though I guess because I don’t know dark mode you can also use blue light filters and dark mode does emit some blue light as well while you shouldn’t use dark mode is because okay it’s like if you shine a bright light Light in a dark place is not going to be good for your eyes if you have astigmatism it affects it affects the text that it looks more blurry black text on the white background makes for the best readability okay no scientific proof that blue or is enough dark mode makes you see better Okay anyway that’s a bit off topic and you can go search up articles yourself about whether light mode or dark mode is better but I just wanted to address that because I’ve gotten comments about why I use light mode not that I really mind what people think but I think it’s just Interesting to research that a little bit okay so for our sync method we added a Boolean uh field for sync do rail checks right is that what we called it yeah so I’m going to pass that into here as well so we have two related problems right here on here I want to do false on the client side so for everything we’re gonna use here I’m gonna put false because we always trust the data coming back from the server the server should be the one doing rail checks but the client shouldn’t do that because the client is only just reading data from The server and we shouldn’t be responsible for caring about whether data is corrupted or not we should be only responsible for parsing the data and receiving it so all the all the server side checks should be done server-side not in our Minecraft client so that’s why I think we should always do false Over here okay so now we’re running Minecraft again and I might have to redo some of the Rails so I’ll cut to when I’m done doing that wow I’m surprised everything saved okay so our Depot is here let me create the root test root uh let’s do eastbound Okay so our eastbound route will go from this station to this station you notice the dashboard still hasn’t updated because I didn’t fix that yet test root West will go from here to here and our Depot will have the instructions uh westbound first and eastbound I’m gonna do 2.5 trains per hour and Unlimited oh did I already check this box I don’t remember doing that okay refresh all right let’s see it go oh the train just disappeared and the rails disappeared there’s another train here that spawned yeah when the train moves away it disappears I think the reason for that is because Of the position tracking of the player so as I move around the server doesn’t update the server doesn’t know that I’ve moved so the server thinks that I’m still at the same position and it will unrender the trains when they get out of view so My hypothesis is that if I put a break point somewhere here let’s do on my rendered trains I will only see Zero or one train actually let me wait till there’s no train like now and I put a breakpoint here so my hypothesis is that if I go to client data instance and vehicles it’ll be zero yeah okay whereas if I go to the siding I go To some server side code like let’s see siding where I have server side simulation like this tick method I think this is all server side yep so if I go to simulator or Vehicles just list the vehicles there are five on the map right now there are Five trains on the map server side but my client side only sees zero trains well now there’s one but zero again so the next bit of code that we will need to add is that when we move we will need to update the server of our position so if you Remember a while ago we added a method somewhere I think it’s in the init here this one update player position so as we move in the world we will need to tell the server that our position has updated so I think the best way to do that is Every few seconds we will pull the player’s position and if we’ve moved far enough from the previous stored position then we will send the update Okay so what I’m going to do here is make another map private static final object to object um maybe we can just do an AVL tree map With uuid for the player and block position okay so every time we update this is one of those IntelliJ bugs again where it doesn’t update the warnings as I type so same as this red line over here Once We join the server when do we call this update player Position yeah when the player joins and when the when we close the dashboard screen interesting all right so do we have a server tick here and World tick so I also want to add a field here private static and game tick so I’ll increment the game tick here if game tick So maybe I’ll do a check every two seconds or something so so two seconds would be 40 ticks in the game so every 40 ticks I want to check server world uh server helper iterate players Minecraft server wait iterate players I can just put in server World yep and then player oops Like that so for each player let me check one more time that uuid is comparable yep it is so I can use my AVL tree map with that okay so for each of the players so we want to get the uuid first that’ll be the ID of the player so oh if Server player entity dot get Block position get the Manhattan distance because that’s the fastest way to compute distances versus if you do the square root of the squares thing that takes longer so I feel like in our positions let me just cut the video to when I’m Done coding this because this is just some easy math all right so let me show you what I have here so if the game tick modulo 40 equals zero which means every two seconds we want to check that for each player this is where we iterate it Each player we are gonna get their old block position saved in this map and we’re going to compare it to their new position if their old block position is not null actually I am missing something here if there they don’t exist in this list we want to put them in the list anyway So if the old block position is null or yeah if they don’t exist in this list already or if there are at least eight blocks away from their old position we would want to update update their position so this is a list storing all the players that need to be updated And then player positions is our map that we’re storing everyone’s position in and we’re going to update it and then finally we send the update player position packet to the server and also there’s one more thing we need to do with register player disconnect we will need to do player positions Dot remove That because we don’t want somebody to be lingering in this map if they’ve already disconnected from the server all right so let’s try that out and see if the data will automatically update as we walk around the world and that we will be able to see the trains and stuff like that Check that the existing view distance that we want is high enough so our update player position we are sending to the server our client group client stuff hmm what is this thank you kind of forgot how this part works again so inside a client group we’ve got oh update radius we’re Coded it to 64 blocks so if something is 64 blocks out of range then it’s not going to get rendered all right okay let’s try that now as we walk around in the world we should be getting packet updates now all right nice one train that’s the other train Don’t know why it’s rendering like that probably because probably because of my client rendering that it’s only showing oh it’s so laggy it’s only rendering certain cars at the same time foreign all right cool yeah why is it so laggy is it like receiving 10 000 packets at the same time Or just rendering these trains makes it like okay anyway what I want to show everyone today is whoa what’s going on here okay clearly I still have a lot of things to fix is this train at the station no it’s not what it’s why is it stuck like that okay well this This doesn’t go as planned but that’s okay I feel like there are two trains here trying to go head to head and they’re running into each other all right I’m going to remove one of these tracks and I’m going to redesign the track so that I can more clearly show you what I want to talk about today so I’m gonna make this part Loop a little more crazily I’m a bit sad that this is more laggy than before and I’m gonna make the other part a one-way track so to basically Force the trains to use that way actually they already will so let me Regenerate that whoa oh I see an issue if I have my dashboard open then it’s gonna try to reset all the data okay so watch as this train goes through this curve foreign I’m gonna try to pause the video here actually I’m going to use the wooden rail Just so you can see it a little better why is this so laggy I don’t understand Wait I’m just gonna check something real quick so where’s my rendered trains again and I just want to check how many vehicles I’m trying to render six why are there six trains I’m trying to render okay that’s not right no way I’m seeing six trains in my view Right now no wonder it’s lagging so badly right now okay anyway hopefully with the lag I can still show you what I’m talking about so yeah one issue with the auto updating is that it always tries to update the data even if I have the dashboard open which will clear the Stuff I have it the existing stuff that I have okay slow down a bit train okay take a close look at the wheels of the train and notice how the train car turns how the wheels followed the track yeah you see that so that’s a new update Let me make this 20 as well so that the train goes slower here yeah just ignore the lag for a minute I am going to fix that in in a little bit foreign here again all right okay now the Train’s going slow enough that we can see the wheels clearly I’m gonna stand over here yep look the bogeys themselves are rotating along with the track and the train cars have pivot Points on the bogeys so that the movement is more realistic now unfortunately there’s no code right now for me to get on the train so I can’t see it from the inside But from the outside you can see that the pivot Points are no longer in between the carriages okay and then the second update watch when this train gets close to here I don’t know if this train will actually stop but when this train stops at the station Watch what happens to the train behind it so this is about the signaling of the track yep watch it watch it and it stops nicely behind the screen so right now I’ve coded in an eight block stopping Gap that the trains will have like a stopping distance so that the Train behind it won’t hit it but it’s configured to be eight blocks right now so you see this train waited patiently eight blocks behind that train even though the rail was partially occupied so this train behind it is going to do the same thing as well So as this train stops at the platform and the next train’s coming in instead of waiting at that rail no right there because this rail nose occupied it’s going to instead come towards this train until it’s eight blocks away and slow to a stop nicely and same thing here Yeah see that train was waiting for this train as well so there’s an eight block Gap here so that’s gonna be the new type of signaling we’re gonna have oh this train’s coming back already so instead of having to wait behind the rail node and the whole rail section to be clear As long as eight blocks is maintained between the two trains the train behind it is just gonna slowly inch its way forward until that condition is met ah this lag is crazy I’m gonna try to fix that now let me see how many trains are being rendered right now I wish I can have a better demo eight trains wow a lot of these are probably out of view as well so I can only see two trains only two trains should be being rendered right now also a lot of the lag I think comes from switching textures all the time as well So in Minecraft most of the lag comes from when you switch textures foreign so how the trains are being rendered right now it’s doing the c114 on a texture bogey texture M Train texture bogey texture c train texture like that so every time it switches texture it Creates a little bit of more of a lag okay so let me see if I can fix that real quick before we move on so I think if we just schedule some rendering that might help so where’s my rendering render vehicles okay so where my render model is where am I actually wait Yeah here is where I create the vertex consumer so let me remove that render trains no render vehicles okay what we need to do here instead is make this into a scheduled render so where we call render model okay I will pass in yeah I think this will help performance Quite a bit so if I pass in the texture hey what did I just remove from here oh actually I just do it right here uh rendered trains dot schedule render texture not priority exterior and our render method here okay cool this will be our schedule render wait a second Is this gonna work because of the translations and stuff render vehicles let’s see hmm we need the translations to be included in there as well because here it does all the translations for us all right I am going to make the texture yeah I’m gonna pass in the texture here And we don’t need the graphics holder anymore the render trains.schedule render sure false oh we need the render layer don’t we foreign that’s going to be an issue because when we’re rendering the main train itself this is so complicated here see how many times we call create vertex consumer That’s where the lag comes in hmm so to schedule them all would be ideal let me undo this real quick at least the bogeys can be scheduled because that part is simple enough can we instead do a stored things stored Matrix transformations okay let me just try doing that So what we need to do is to do all these Transformations there okay after we store all these transformations we can do uh render with the Matrix transformation I don’t know if that will work okay yeah if I modify my method to do that okay so my render method will now contain that instead so this will have stored Matrix transformation light and then here we have scheduled rendering and then we would we don’t need to append new to this Variable anymore stored Matrix transformation transform do we need to do some pushing and popping oh transformation oh it already pushes it here and then for each let’s just pop in anyway Graphics holder hop let me see my other usages of this yeah okay I do can’t pop at the end okay So in our model bogey class we will do that and for the rest of the train rendering we will also need to do the same thing so instead of Graphics holder I will pass in stored Matrix transformation like that okay this is Tricky Tricky so what’s base transform What is the space transfer okay okay I think Hmm okay ah this is this is tricky but I think we are getting really close here so interior translucent light interior exterior light are we repeating some of these no we are not good oh the text this place will also require the graphics holder Hmm okay let’s just do our scheduling right here schedule render our identifier would be texture and priority false interior translucent do we have that what is light translucent I’m curious okay let me just add that real quick here Okay we need to add a switch statement here for interior translucent to get interior translucent cool so I think that’s what I needed all right okay if that gives me an error later that ‘ll investigate that again so interior translucent and Graphics holder callback so we will need to do that And oh lights on we need to check if lights on Interior translucent or else it’ll be exterior translucent which we will also need to add that here look at that okay we want the default to be exterior ah this is a really annoying bug for IntelliJ okay so after we render we need to do the base transform actually we need to do the Transformations stored Matrix transformation transform and then do the base transform then render and then pop Like that okay remove that cool next part we will do the lights rendering okay so render trains.schedule render texture priority false lights oh my naming is inconsistent this is lights and this is light Okay anyway okay my renderer light what’s next Graphics holder so now we’ll actually do the rendering again we need all of this and we’ll replace this rendered statement like that all right oh we also have the lights on check lights on light or exterior All right and do we have this all done I’m really hoping I’m not missing anything here so if I am accidentally deleting stuff please let me know interior exterior and render done okay if render details we want to render extra details okay I think I can delete that part now Okay render extra details oh okay undo undo undo I think that should stay on its own and then this method needs to be changed foreign yeah the door overlays should also Use scheduled rendering instead all right anyway we don’t need the pot at the bottom as well now for the exterior part copy this here just the exterior for here a render method cool and then we have our always on light which is just basically light yep yep there we go That is our rendering cool that should be it okay and text displays we also need to do storage Matrix transformations just like this oh where did that go ah there’s so many uh oh hmm should I be doing scheduled rendering let’s fix the extra details bit here first wait a minute oh This is getting more and more complicated okay I think what I am going to do is since I am doing base transforms for all of these it will be good to do a stored Matrix transformation Uh at the base transform at okay and then use this one instead so we don’t have to do all the base transforms like that this is depending onto the stored Matrix transformation while not modifying the original object so this should only be used in one location this should only be used here Yep okay so now we have that and our text displays and the render extra details okay let’s just go for it let’s go for it okay now there’s a refactor thing here I’m gonna change this to stored made Matrix transformation and when I refactor all the overrides will change the signature So then I don’t have to go into each one and change it so that’s a neat feature okay let’s fix the extra details first schedule render uh goes in here texture texture what is our texture model door overlay render hmm and yet we request more vertex consumers that’s why it lags so much So we will again need to do the same thing here and schedule all these renderings all this rendering here okay so render you know I’m gonna cut to when I’m done doing this because this is a bit tedious all right edit all the scheduling for the door overlays That was a bit painful but it’s done now okay so instead of Graphics holder we’re passing in our stored Matrix transformations oh and the overlay top has to be changed as well what is oh wait does this also have wait a minute so confused model door overlay top base oh okay Okay I just did that off camera fixed the SP 1900 and the mlr door overlays so that’s what that change was and I also found out that I was calling this render method that’s why and this method has nothing in it this isn’t supposed to be called directly so I called render Instead of render new here that’s why nothing was being rendered okay so finally all the text rendering no it’s not gonna error out anything should yeah we do need the graphics holder there we can’t just have the stored Matrix transformation so we might have to hmm we might have to change this back Oops my name Okay let me change this back we will need to plug that in foreign this to Graphics holder text so it doesn’t inflicts with all these ones here I know that’s not usually what I do but I can change that later okay so who’s calling this render maybe it’s just here all right Now is everything happy let’s run it and see hopefully it is I just had to fix one small thing in this resource pack creator because the resource pack creator renders the train model in the GUI so after fixing that Minecraft will launch and let’s see what we have here let’s see if the frame rate is better or not I feel like there’ll be some improvement maybe still a little bit laggy but I feel like it would be better did I speak too soon no yeah that’s that’s better I can tell it’s just kind of weird that the trains are just snapping in and out of view But yeah for the most part it’s better still a little bit of lag here and there you see the the door overlay rendered properly now on the mlr as well maybe it’s because all the packets and stuff being sent like when this train is waiting behind the other train It’s like constantly sending packets because it’s waiting for when the train in front is like moving away slowly okay my video recording stopped again because my disk space ran out again so I had to delete some old video footage from last week anyway I wanted to just demo again all The features that we showed earlier but with better frame rate so as we get close to the siding the train should show up well okay I have to kind of brush up that feature a little bit because it’s still not perfect as you can see like the Train’s not instantly updating As well as I hoped hmm the light rendering layer can be improved okay so the first feature that I was going to show is look at the new bogey rendering on these curved tracks so the bogeys follow the curve nicely they rotate according to the Curve and the pivot of The train car itself is now on the bogey instead of just at the Car Connection point so the movement is much more realistic which also means if you make tight curves like this it’s going to look really weird especially if you’re inside the Train the car connectors will Look like they’re being warped like a ton but this also means that you shouldn’t be designing these tight curves for these full-size trains anyway so that’s up to you as the Builder to decide what you want to do so that is the improved physics of the bogeys and If I make slopes as well you’ll also see that the boogies follow the slope although I haven’t built any slopes here yet and the second feature is the train stopping distance mechanism or whatever you want to call it so as you can see the signaling Works a little Differently from what it what it does before instead of waiting for the whole rail section to be clear and the train would be raining behind this rail node now the behavior is that the train would just follow along the train in front with an eight block space So the eight block is hard coded right now for all trains it’s gonna stay eight blocks behind so as you can see when this train stops at the station this train’s coming in but it’s gonna keep an eight block distance and so when this train moves out this train will Inch in closely close by as well like that so instead of waiting behind that rail node until the whole section is clear the trains will maintain the eight block separation and at least an eight block separation to keep the distance so let me see if I can show Another instance of the trains doing that I don’t know let’s just watch this train turn back because I’m a little bit afraid that the trains aren’t going to turn back properly well they are okay good yeah which will also mean you have to design your signal blocks better so right now Signal blocks aren’t implemented right now with the signal connectors but it also means you have to you might have to redesign some of your existing Junctions because trains can now enter a rail section even though there’s another train on it so if you have like a one-way turn back Or one lane turn back and a train is inside the turn back the second train can enter the turn back let me show you what I mean like here for example at this last station if a train is here at this platform the turn back a second train comes in here enters this Turn back it’s gonna wait eight blocks behind this train and enter into a gridlock so you’re gonna have to redesign this and we’ll talk about signaling another time because I haven’t coded that in yet but if that happens you’re gonna have to design your signaling so that they don’t lock up whoa This isn’t supposed to happen I think this is an issue of the packets so when I got too far away from that other train and now I entered the view radius that Train’s supposed to have left but my client doesn’t know that so there’s like a frozen train in time here this Train is Frozen in time because this train is actually at the siding and it’s disappeared from existence but my client doesn’t know that because I was out of range oh now it disappeared yeah so some small issues that I have to fix but the main features that I want to Show off today is the bogey rendering and the improved signaling of the trains they’ll always wait eight blocks behind the existing train and there’s a cat here be careful wow is it gonna really cross okay no it’s not gonna cross the tracks at the perfect time okay yep It’s all working well and I’ve improved the frame rate a little bit I think spawn station on the let’s play will see significant improvements with the spring rate scheduled rendering stuff that I’ve implemented but we’ll have to wait for the 4.0 update so I guess this is a bit of an improvement as Well before we actually Implement Nemo’s rendering changes hmm so if you don’t know who Nemo is Nemo is the author Nemo’s Transit expansion that’s what it is nte so if you have that add-on you will know that you can add obj models to the game and That is supposed to lag up the game a ton because the Minecraft rendering engine can’t handle that but Nemo rewrote some of the pipeline for rendering which is very impressive I have no idea how to do that stuff but if we do Implement that code into the mod Then rendering will be much faster as well but that’s like a far future thing for now this rendering Improvement I’m already quite happy with so we can be enjoying that for now so yeah those are like the two big updates I guess two and a half The two and a half updates I know I said this multiple times is the new train physics and the bogey rendering whatever you want to call it and the stopping distance the signaling the new signaling change for the trains and also the half update is the rendering improvements Alright so thank you for watching I hope you’ve been enjoying this series and thank you everyone for supporting thank you patreons and thank you everyone else for your support and encouragement during this time there’s been a lot of coding going on please subscribe and like this video and Check out the playlist if you haven’t seen the other two videos about the new upcoming updates and I’ll see you next time bye Video Information
This video, titled ‘Realistic Train Movement in 4.0.0 – Minecraft Transit Railway’, was uploaded by Jonathan Ho on 2023-09-24 07:30:04. It has garnered 3373 views and 153 likes. The duration of the video is 01:15:09 or 4509 seconds.
After another week of coding, I have added a few more features to the mod which make trains more realistic. Thank you Patreon members for your continuous support. Please consider subscribing if you are able!
https://www.patreon.com/minecraft_transit_railway
Timestamps 0:00 Intro 1:22 A First Glimpse of New Train Movement 42:12 Watch Me Code and Improve FPS 1:06:00 Final Result – All New Features!
Minecraft Transit Railway is a Minecraft mod based on Hong Kong’s MTR, the London Underground, and the New York Subway. It adds trains, boats, cable cars, and planes to the game along with other miscellaneous blocks and items. With this mod, it is possible to build a fully functional railway system in your world!
Useful Links Mod Download: https://www.curseforge.com/minecraft/mc-mods/minecraft-transit-railway Get 25% off server hosting on Shockbyte: Use code MTRMOD https://partners.shockbyte.com/minecrafttransitrailway Mod Wiki: https://wiki.minecrafttransitrailway.com/start Be part of the community; join our Discord! https://discord.gg/PVZ2nfUaTW Support my work! https://www.patreon.com/minecraft_transit_railway Help translate the mod! https://crwd.in/minecraft-transit-railway
Social https://www.instagram.com/minecraft.transit.railway/ https://www.facebook.com/Minecraft-Transit-Railway-102713049454897 https://twitter.com/MTRMinecraft
#minecrafttransitrailway #minecraftmods #minecraftmtr #mtrmod #mtr #minecraft #transit #railway #trains #railway #transport #subway #londonunderground #london #underground #nyc #newyorksubway #nycsubway #cablecar #airplane #airlines #aeroplane #plane
#update #spoiler #preview