Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

weckar

Forge Modder
  • Joined

  • Last visited

Everything posted by weckar

  1. Magic it would be... if not that when I drop those it suddenly says it ISN'T tesselating! What do you want from me, Tesselator!?
  2. In addition to what's already been said, I personally find (as a java programmer, not a modder) that organising assets properly is 100x more difficult than organising classes. With the way minecraft loads things, I imagine this being even more true. In other words, get that right early.
  3. Hmmmm going back to the script you posted above, I realize I have no idea where to actually CALL that from! My first instinct was to use a Block's custom rendering class, but within the method renderWorldBlock I get the exception that it's already Tesselating. Haven't found a way around that, so I continued trying. I figured, maybe on the clientside tick of a BlockEntity. No Exceptions - but no line either...
  4. Just so I understand correctly, you want to create a void dimension - just so you can add everything back in manually? That seems like an awfully convoluted way about doing things...
  5. Your English is mostly fine. Could do with some punctuation though. The "Durability" you mention is actually the damage mob entities keep anyway, so no worries there. The real issue will be capturing that data to an item, and restoring it to the mob later. Correct me if I am wrong (or if you miss the reference) but I am thinking of this as some sort of Pokeball. You remove the entity from the world with the initial rightclick (checking whether it has NO mob NBT data), saving the current health value (and probably mob type) to the NBT data of said item. When later re-using that item (checking whether it has mob data), the mob should be spawned and its health loaded from the Item's NBT, which I assume at that point should be erased. Tell me if that's a decent summary of your problem, because if so we can start cracking it step by step
  6. I have to say I am not familiar with the Vec3 data type, but it looks reasonably straightforward as a coordinate storage. It does strike me that you are creating 4 vertexes to draw a line, and yet nowhere do you tell the tesselator that is is a line you want to draw. Seems to me that it would prefer to draw a plane somehow? I could definitely see this being a very good first solution, so Kudos (I honestly don't see what your signature talks about!). The laser I'm referring to does seem to be made of... pellets, if there'd be no other word to describe it. As said, it LOOKS like particles, but it seems much to controlled to actually be so - while there are too many of them for them to reasonably be actual entities... Still, this gives me some grounds for trying things out
  7. Hi! This is honestly more of a personal interest topic than a 'help' topic, although that makes me no less interested in the opinions and answers. To me, one of the most graphically entertaining features of any mod ever are the lasers sent out by Botania's mana spreaders. And lately, now that I've dipped my toe into coding for this game myself, I've found myself wondering how it's done... My immediate assumption would be particles of somekind, but I have never known particles behave so well, or be lag free in such large numbers. I've been playing with particles a bit myself, but for me they actually seem to completely ignore any directional vector I give them... Another way, I suppose, would be tapping directly into the drawing engine. But I also imagine this would be cumbersome, difficult, and not very efficient. So, how would it be (/is it) done? This question just has been tickling my brain for a while now!
  8. You may want to write a private method to simplify that abomination of an if statement. Also, I take that could should ONLY run if the metadata of the current block ISN'T 0? The processing time saved there will add up. Also, it's rather odd that it doesn't trigger. In fact, the way you've set that up your fluid should spread to completely cover any flat surface it's placed on! This, assuming it's not flowing in any specific direction. Also, you probably want to set the metadata, not the block.
  9. Okay... It'll take me a little while to get over how easy this was. Events are really powerful
  10. Hmmmm yes. That second part I fully get. Could you maybe point me to a class or piece of code (github is fine) where a similar thing is already used? Just so I see it in context.
  11. it seems like a simple thing, but I can't find any information on it whatsoever... Basically, my intent is when the player mines stone - just regular stone, the stuff you go through millions of - there's a smaaaaaall to drop one of my items instead (like 1/1000). Dropping the item would be easy. Thus far, though, I can't tap into the moment when the stone is mined. I would go looking myself, but in 6 hours of scanning classes, I haven't yet found anything akin to what I need. Thank you for any advice in advance
  12. Wouldn't overriding a hoe work well in your case?
  13. Store the fluid as NBT? Check out any open source mod that provides tank blocks, really.
  14. Here's an idea: 1. Scan for and store all ItemEntities in the area. 2. Destroy blocks. 3. Destroy all ItemEntities in the area. 4. Do whatever you do to restore blocks in that really cool video ya got. 5. Restore the stored ItemEntities.
  15. Sometimes it works, sometimes it doesn't? Could it be that you are trying to remove some of these blocks client side? I've run into that problem before, myself.... Also, reverse iteration is hardly needed: just work from the highest y to the lowest. That already eliminates anything on floors - only things on walls could then still be an issue... Is there any way you could maybe remove non-opaque blocks first? Because all the things you mention need to be attached to opaque blocks...
  16. Thanks for the pointer - and I tried it to see what it would do. Turns out - it will ONLY render the insides of all blocks. In other words, you'll notice quite quickly....
  17. SOLVED! RenderBlocks has a method called setRenderFromInside(). Set it to true to draw the inside of a block! (Overriding shouldSideBeRendered from Block to always return true may also be a good idea).
  18. If I agreed with you, I wouldn't have been asking the question for two days now. But I'll take another crack at it after work.
  19. Hmmmm okay. Then probably the better question would be how I could also render the INSIDE of these quads?
  20. Just a default block with custom textures, in render pass 1 if it matters at all.
  21. I meant drawing the back faces of the transparent block. I have no issue (right now) with blocks below/behind it being rendered. Thanks though.
  22. I've been searching for a while on it, but I'd like to turn off backface culling for certain blocks. In other words: draw all faces, including the back ones (it concerns a transparent block). Is there an easy way to override this behavior?
  23. Seems to me you'd be better off extending BlockFire directly? What do you mean the rendering is 'different'?
  24. Technically, as long as you don't store any of the sounds/music: no. The only reason YouTube has the issue is because they actively store the data, even if users put it on there. Still, you probably don't want to have to argue this in court.
  25. I managed to figure it out through ISimpleBlockRenderingHandler instead of TESR. Still, thanks for the pointers. Sure to be useful in the future. EDIT: Now I try to only have it render in pass 1 (I applied a semi-translucent texture), and it goes invisible again... in random chunks? It's perfectly visible and transparent in others... Is there any known behavior that makes render pass 1 skip certain chunks? EDIT 2: placing ice or any other 'natural' block that renders in pass 1 in the same chunk makes all my blocks visible too... Is there somesort of trigger I've missed? EDIT 3: turns out I was using the entirely wrong method to set the render pass: canRenderInPass instead of getRenderBlockPass. All good now!

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.