Jump to content

Recommended Posts

Posted

I have been making a block that can take the texture of other blocks, and have run into the issue of which render pass the block needs to render in. If I set it to 0, then I have the same issue as MFFS had with ice and water a while back, and if I set it to 1, then I have dodgy rendering when the block are next to each other with different textures, particularly textures of blocks that should be rendered in pass 0. One way that I can think of to fix it is to use twice as much metadata, but I would like to retain future compatibility and would prefer to avoid using metadata for this.

I also looked at MFFS source code to see how ThunderDark dealt with it, and found out that he hard-coded for water and ice...

Is there any solution without hard-coding, or doubling my footprint?

Posted

not sure how your doing it ,but couldn't you call get render pass in your block and have that call a get render pass in the block that has the texture you want to use?

 

i'm kinda doing something similar in a mod i'm working on but i dont think i will have that problem as i'm getting only the texture of solid, normal blocks. but i'm using a tile entity ,3 int arrays ( may be able to shrink rotation and meta to what ever size a hexadecimal uses later) , and a custom renderer to read the info.

Posted

getRenderBlockPass in Block doesn't have any parameters, and you have one instance of a Block / Item, so I can't store it there... I have no way to access where I'm storing my data...

Amending the first post, I would have to use 2 Block IDs to accomplish it in the way I proposed...

Posted

from what i'm getting from the first post is your ( probably ) storing the id of the block that you want the texture of. witch if you are it wouldnt work above block id 15. and i dont think adding a second var to the block would work so the only way i could think of is to add a tile entity and custom renderer like i'm haveing to.

 

the tile entity doesn't need much in the way of variables, block id, render pass, and side would be the easiest. then from the custom renderer u get the tile entity by using the IBlockAccess.getTileEntity() , cast that to your tile entity and get the data either from the variables or by reading from the nbt trough that.

 

AbrarSyed has a mod in github i've been using as a refrence , though its for 1.4.7 it should be adaptable enough to work for 1.5

https://github.com/AbrarSyed/SecretRoomsMod-forge

Posted

What I'm doing is storing it as an ItemStack in a TE, and using IBlockAccess to get the ItemStack, but the method getRenderBlockPass() in Block doesn't have any parameters...

But thanks for that link, I'll go check it out...

Posted

ok so your trying to not use a custom renderer at all but the basic one with a work around to get a different blocks texture ?

also what exactly is your block gonna do?

(so i can try to figure out what u want w/o having to weed though the obscurity of what will and wont work cause of something i dont have any info on )

Posted

Correct, I'm using Mojang's default Block renderer. All I need to do is change what one of the getTexture overloads returns, and mark the block for a render update...

The block in question is the Hidden Wires from Electric Expansion. With 1.5 and the new way of handling textures, I thought it would be easy to add blocks that can use another blocks texture, with support for Mod Blocks that aren't my own... One of the very few bugs left in the MC1.5 update is the Hidden Wires not rendering properly.

Posted

well after a bit of thinking i have a few ideas , not all the best per say but ideas all the same :P

 

1) use meta to store the render pass and when u set the block type in the TE you could update the block to the block of that pass

 

2) the long tedious custom renderer

 

3) check the render pass of the block before you store it in the TE and only allow pass 0 ones and ones that are opaque cubes , as pass 1 blocks appear to only be the semi-transparent ones and something see through wouldn't exactly hide a wire very well lol

 

just the ones i could come up with, their are probably more ways

Posted

I thought about each of them, but getRenderBlockPass in block doesn't have an overload with metadata, as you described, long and tedious, and the render pass is still in the block's class. 3 sounds the most logical...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I fall into the void if I fly the rocket to the earth, and dying or respawning just brings me back to the moon.   Error Code:  Found matching world (0) for name: Overworld [00:22:40] [Client thread/INFO]:Adding world access to world net.minecraft.client.multiplayer.WorldClient@73fa708 [00:22:41] [CraftPresence/ERROR]:Asset name "overworld" does not exist, attempting to use an alternative icon "galacticscience"... [00:22:41] [CraftPresence/INFO]:To add support for this icon, please request for this icon to be added to the default Client ID or add the icon under the following name: "overworld". [00:22:41] [CraftPresence/INFO]:Fallback icon for "overworld" found! Using a fallback icon with the name "galacticscience"! [00:22:42] [Server thread/INFO]:Server attempting to transfer player IcyBlues9 to dimension 0 [00:22:42] [Server thread/ERROR]:"Silently" catching entity tracking error.   How can i fix it?      
    • If you remove armorchroma does it still crash?
    • Hello everyone!   I’ve launched a Christian Minecraft server today called “Acolyte”. Although it’s a Christian server, it’s open to anyone, but the main goal of me pursuing this was to combine two things that I love and make an area where people can talk about faith and build some cool castles. The server is meant for Java edition, 1.21.5, and has plugins such as land claiming, economy, shops, terrain generation, etc. It’s a survival / smp world, and the server address is: acolyte.mcsrv.pro   There’s a Discord server linked to it as well. It’s a place to hangout, talk about the game, have theological discussions, and hopefully meet some pretty cool people. The invite is available on the Minecraft server. I’m still new to a lot of this, and so please forgive any downtime or tweaks that I make to the server, and please give any feedback or criticism if you come up with some ideas. I truly hope you all enjoy it if you get the chance to join.   - ChedduhCheese   acolyte.mcsrv.pro
    • My Crazy Craft Updated pack for 1.16.5 crashes whenever I use items from Mowzie's Mobs that have animations. Specifically the ones that I have tried are the Ice Crystal and the Axe of a Thousand Metals. The crash only happens when I use the ability of it, aka right click, which triggers the animation. I should note that I added around 50 other mods to the pack, two of which are the Female Gender mod and More Player Models. Could they be the source of the crash? Here is the crash log: https://mclo.gs/ZhsC793
    • Hello, i've tried to make a minecraft server for my friends on old laptop. But im getting this error   ---- Minecraft Crash Report ---- WARNING: coremods are present:   DCLoadingPlugin (DummyCoreUnofficial-2.4.112.3.jar)   HCASM (HammerLib-1.12.2-2.0.6.23.jar) Contact their authors BEFORE contacting forge // I feel sad now Time: 19.06.25 22:26 Description: Exception in server tick loop java.lang.NoClassDefFoundError: net/minecraft/client/Minecraft     at nukeduck.armorchroma.ArmorChroma.<clinit>(ArmorChroma.java:23)     at java.lang.Class.forName0(Native Method)     at java.lang.Class.forName(Class.java:348)     at net.minecraftforge.fml.common.FMLModContainer.constructMod(FMLModContainer.java:539)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)     at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)     at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)     at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)     at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)     at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)     at com.google.common.eventbus.EventBus.post(EventBus.java:217)     at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219)     at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)     at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)     at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)     at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)     at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)     at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)     at com.google.common.eventbus.EventBus.post(EventBus.java:217)     at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136)     at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:595)     at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:98)     at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:333)     at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:125)     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486)     at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.ClassNotFoundException: net.minecraft.client.Minecraft     at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)     at java.lang.ClassLoader.loadClass(ClassLoader.java:418)     at java.lang.ClassLoader.loadClass(ClassLoader.java:351)     ... 35 more Caused by: net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerException: Exception in class transformer net.minecraftforge.fml.common.asm.transformers.SideTransformer@57fae983 from coremod FMLCorePlugin     at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:260)     at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)     at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)     ... 37 more Caused by: java.lang.RuntimeException: Attempted to load class bib for invalid side SERVER     at net.minecraftforge.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:62)     at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:256)     ... 39 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.12.2     Operating System: Linux (amd64) version 6.8.0-51-generic     Java Version: 1.8.0_452, Private Build     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Private Build     Memory: 1088926088 bytes (1038 MB) / 1634205696 bytes (1558 MB) up to 4194304000 bytes (4000 MB)     JVM Flags: 2 total; -Xms1024M -Xmx4500M     IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0     FML: MCP 9.42 Powered by Forge 14.23.5.2859 44 mods loaded, 44 mods active     States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored     | State | ID                       | Version            | Source                                        | Signature                                |     |:----- |:------------------------ |:------------------ |:--------------------------------------------- |:---------------------------------------- |     | LC    | minecraft                | 1.12.2             | minecraft.jar                                 | None                                     |     | LC    | mcp                      | 9.42               | minecraft.jar                                 | None                                     |     | LC    | FML                      | 8.0.99.99          | forge-1.12.2-14.23.5.2859.jar                 | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LC    | forge                    | 14.23.5.2859       | forge-1.12.2-14.23.5.2859.jar                 | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LC    | codechickenlib           | 3.2.3.358          | CodeChickenLib-1.12.2-3.2.3.358-universal.jar | f1850c39b2516232a2108a7bd84d1cb5df93b261 |     | LC    | ancientwarfare           | 1.12.2-2.7.0.1032  | ancientwarfare-1.12.2-2.7.0.1032.jar          | None                                     |     | LC    | ancientwarfareautomation | 1.12.2-2.7.0.1032  | ancientwarfare-1.12.2-2.7.0.1032.jar          | None                                     |     | LC    | ancientwarfarenpc        | 1.12.2-2.7.0.1032  | ancientwarfare-1.12.2-2.7.0.1032.jar          | None                                     |     | LC    | ancientwarfarestructure  | 1.12.2-2.7.0.1032  | ancientwarfare-1.12.2-2.7.0.1032.jar          | None                                     |     | LC    | ancientwarfarevehicle    | 1.12.2-2.7.0.1032  | ancientwarfare-1.12.2-2.7.0.1032.jar          | None                                     |     | L     | armorchroma              | 1.4-beta           | armorchroma-1.12.2-1.4.jar                    | None                                     |     | L     | baubles                  | 1.5.2              | Baubles-1.12-1.5.2.jar                        | None                                     |     | L     | betterburning            | 0.9.2              | BetterBurning-1.12.2-0.9.2.jar                | None                                     |     | L     | bettercaves              | 1.12.2             | bettercaves-1.12.2-2.0.4.jar                  | None                                     |     | L     | betterinvisibility       | 1.0.1              | betterinvisibility-1.0.1.jar                  | None                                     |     | L     | bettermineshafts         | 1.12.2-2.2         | BetterMineshaftsForge-1.12.2-2.2.jar          | None                                     |     | L     | bookshelf                | 2.3.590            | Bookshelf-1.12.2-2.3.590.jar                  | None                                     |     | L     | collective               | 2.11               | collective-1.12.2-2.11.jar                    | None                                     |     | L     | extendedrenderer         | v1.0               | coroutil-1.12.1-1.2.37.jar                    | None                                     |     | L     | coroutil                 | 1.12.1-1.2.37      | coroutil-1.12.1-1.2.37.jar                    | None                                     |     | L     | configmod                | v1.0               | coroutil-1.12.1-1.2.37.jar                    | None                                     |     | L     | dummycore                | 2.4.112.3.         | DummyCoreUnofficial-2.4.112.3.jar             | None                                     |     | L     | dynamictrees             | 1.12.2-0.9.22      | DynamicTrees-1.12.2-0.9.22.jar                | None                                     |     | L     | thaumcraft               | 6.1.BETA26         | Thaumcraft_1.12.2_6.1.BETA26.jar              | None                                     |     | L     | dynamictreestc           | 1.12.2-1.4.2       | DynamicTreesTC-1.12.2-1.4.2.jar               | None                                     |     | L     | hammercore               | 2.0.6.23           | HammerLib-1.12.2-2.0.6.23.jar                 | None                                     |     | L     | waila                    | 1.8.26             | Hwyla-1.8.26-B41_1.12.2.jar                   | None                                     |     | L     | jei                      | 4.16.1.302         | jei_1.12.2-4.16.1.302.jar                     | None                                     |     | L     | keepinginventory         | 2.4                | KeepingInventory-1.12.2-2.4.jar               | None                                     |     | L     | libraryex                | 1.2.1              | LibraryEx-1.12.2-1.2.1.jar                    | None                                     |     | L     | netherex                 | 2.2.4              | NetherEx-1.12.2-2.2.4.jar                     | None                                     |     | L     | recipehandler            | 0.13               | NoMoreRecipeConflict-0.13(1.12.2).jar         | None                                     |     | L     | nei                      | 2.4.3              | NotEnoughItems-1.12.2-2.4.3.245-universal.jar | None                                     |     | L     | thaumadditions           | 12.6.6             | ThaumicAdditions-1.12.2-12.6.6.jar            | None                                     |     | L     | thaumicbases             | 3.3.500.6r         | thaumicbases-3.3.500.6r.jar                   | None                                     |     | L     | thaumictinkerer          | 1.12.2-5.0-620a0c5 | thaumictinkerer-1.12.2-5.0-620a0c5.jar        | None                                     |     | L     | thaumicwaila             | 1.12.2-0.0.2       | ThaumicWaila-1.12.2-0.0.2.jar                 | None                                     |     | L     | tumbleweed               | 1.12-0.4.7         | tumbleweed-1.12-0.4.7.jar                     | None                                     |     | L     | villagespawnpoint        | 1.5                | villagespawnpoint_1.12.2-1.5.jar              | None                                     |     | L     | wawla                    | 2.6.275            | Wawla-1.12.2-2.6.275.jar                      | None                                     |     | L     | wooltostring             | 1.12.2             | WoolToString-1.12.2-1.0.0.jar                 | None                                     |     | L     | zombieawareness          | 1.12.1-1.11.16     | zombieawareness-1.12.1-1.11.16.jar            | None                                     |     | L     | betteranimalsplus        | 9.0.1              | betteranimalsplus-1.12.2-9.0.1.jar            | None                                     |     | L     | orelib                   | 3.6.0.1            | OreLib-1.12.2-3.6.0.1.jar                     | None                                     |     Loaded coremods (and transformers):  DCLoadingPlugin (DummyCoreUnofficial-2.4.112.3.jar)   DummyCore.ASM.DCASMManager HCASM (HammerLib-1.12.2-2.0.6.23.jar)   com.zeitheron.hammercore.asm.HammerCoreTransformer     Profiler Position: N/A (disabled)     Is Modded: Definitely; Server brand changed to 'fml,forge'     Type: Dedicated Server (map_server.txt)
  • Topics

×
×
  • Create New...

Important Information

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