-
Posts
3284 -
Joined
-
Last visited
-
Days Won
62
Everything posted by ChampionAsh5357
-
That method is where you would call all of your model providers when they are being built. As for examples, you can look at the Forge test.
-
You're technically not making the models in code, you are creating loaders that handle your json models. Based on what I gather, you simply want to overlay one model or layer onto another given a specific arrow nocked. You can either use a data generator which will handle all of this overlay data for you and all you need is a texture of the bow and it's states along with a property for the arrow. Otherwise, you would need some implementation of IDynamicBakedModel where it stores the ModelProperty of the arrow using an enum or a registry. There is no specific documentation on this. However, I am sure someone has created examples, though I cannot point you to where.
-
BlockClusterFetureConfig Question
ChampionAsh5357 replied to Timebreaker900's topic in Modder Support
Look at the placement itself and how the variables are used. This looks like something for 1.15.2. It actually does do exactly what you said; however, you are thinking about the placement incorrectly. While it is true that it should generate 100 times, you are also neglecting the starting block position. By default, it will spawn at the height specified by the block position. However, if you try and variate the movement, there is a chance it might spawn within a block or in the air, making it nonviable to generate. Variating the x and y positions will have this affect although it is necessary to make it spawn more than one particular flower. Rarity of placement is more of a luck of the draw type thing like any other probabilistic type outcome. The more chances you give, the more you see a more probabilistic outcome. To make a flower rarer, you can just as easily make a block placer which has a probability to spawn the flower. As for having it generate from a configuration file, you would need to attach the features to reference a supplier holding the actual value of the config file. Otherwise, the changes will not be synchronized across sides. -
[1.16.3] Custom Flying Entity doesn't spawn
ChampionAsh5357 replied to OrcaWorld's topic in Modder Support
It would be better if you could provided the log of the error or a more specific explanation of spawning. Do you mean manually through a command or specifically in the world? -
[Solved] [1.16.3] Registering Biome with modded Features
ChampionAsh5357 replied to Choonster's topic in Modder Support
If I'm not mistaken, there should be a builder that allows a supplier of a configured feature to be taken in. However, if this does not work, then you would need to handle the features within the biome itself in the highest priority. You can also create a json version of the biome and use the entry as a dummy. This way the feature can be loaded into the world from the json itself without the need to navigate around registries. -
[Solved] [1.16.3] how to make item lore
ChampionAsh5357 replied to peanutexexe's topic in Modder Support
Item#addInformation, this is the only thing that could possibly relate to what you're asking. -
It must be loaded above [[mods]], so yes it must be...
-
You could probably find the associated code within the player that causes that to occur. You would then need to apply it in PlayerSleepInBedEvent whenever the player's dimension is the overworld.
-
They did. It was their starting post. Also, it seems that my hypothesis was correct. the mods.toml is ordered by the default in the mdk. This means you moved the variables around expecting it to work. However, the brackets indicates that whatever comes afterwards is applied to the specific mod and not global information. The modloader and version are global information that must be known independent of the mod. Please look at a default mods.toml and order your variables accordingly.
-
Since I can't see the error, I'm gonna guess that it's telling you don't have a supplied mod loader or loader version since they are attached to the mods list instead of being global.
-
I believe there's a method when it grabs the unbaked model called bake which converts it into the baked model. However, I don't believe you would need to do this yourself. You can just grab the baked portion and animate them using a TER or by transforming the final baked model by it's quads.
-
You're not loading a baked model, you are grabbing unbaked models that are converted and cached into baked models. This can be done by attaching it via an item or block or adding it as a special model using ModelLoader::addSpecialModel.
-
[1.16.1] New Lantern Not Supporting Transparency
ChampionAsh5357 replied to Matt Wild's topic in Modder Support
Neither of these are correct. The first property says your block should not consider this for culling on all sides. This should not be necessary if you properly handle your voxel shape. The other method determines how your block should render, such as whether to use a model, a TER, or nothing at all. These do not affect the render layer. That's because that's what you need to do. If you look at the parameters, you should see the first one requires a block of some type. The second needs either a function or a RenderType. If you go into the RenderType class, you should find a bunch of static methods which will return RenderTypes. You should be able to determine which one you should use for this. -
The animation API pretty much has been removed at this point. If you want to transform the model, you will probably need to transform the vertices for each quad in the baked model itself. However, it's probably easier to separate the animated portions of the model and apply on top of the original baked model when needed and then swap for a static model whenever it is not animated. This could probably be done with 2 models and a TER to render the animated part of the model when needed.
-
Repurposed structures seems to be coremodding into an immutable map. You should probably update to latest minor and try with the updated versions of these mods.
-
Encountered an Error during the load_regestries event
ChampionAsh5357 replied to PhilledZone's topic in Modder Support
You never attach the block register to the mod event bus. -
Pathfinding will always find the shortest possible distance to the player. If you want them to explode on no path found, you will need to replace the current goal with you own that handles that. If you want it to be any obstruction, you'll probably need to reprogram the pathfinding AI.
-
Rendering text above existing PlayerEntity
ChampionAsh5357 replied to kaiser_'s topic in Modder Support
RenderNameplateEvent is what you are looking for. It depends. Data is synced to the client on a need-to-know basis. This something like armor being worn or a sword being held. You can try and display any data. If it's null or a default value, then you know that you need to send the data to the client. -
I'm going to assume that the right click is with an empty hand. If so, you would definitely need to set up a network and send the packet to the server so World#addEntity can be called. If it's through an item, then you can just check the side within Item#onItemRightClick and then add the entity,
-
If you did literally one google search you could see that he does. And don't be rude because he's actually taking the time to answer your questions. As for the answer to your question: Yep, said it all. Just because you've seen it doesn't mean it true in all cases. That's like saying because I've seen someone die from eating an apple that all apples kill whoever eats it.
-
There may be a primer for 1.15 -> 1.16.1; however, in the current state of 1.16.2 onwards and with the release of 1.16.4 coming soon, I doubt you will be able to find one. Not many people understand the new system of world generation through data driven systems, so a primer will probably not be out for a while. However, since I'm not a fan of leaving any post unanswered, I'll try and take a basic stab at it. - Blocks have been abstracted even more (AbstractBlock). You'll find that the properties have been turned into functions of some kind to allow for even fewer blocks. For example, the blockstate can control how much light is emitted using a ToIntFunction. Also, for a tool to be required to mine a block, the setRequiresTool parameter must be set. - Block properties no longer have an interface IProperty. It has been relegated to just Property now. - Item properties have also been removed and isolated from the Item class. They are handled within ItemModelProperties and can be registered using the appropriately named methods there. - Rendering methods now take a MatrixStack parameter to correctly orientated it on the screen. If you find any unmapped methods, you will most likely need to stick a MatrixStack variable somewhere within there, nothing else. - Server reload listeners are added via AddReloadListenerEvent. Client reload listeners should still be handled either within your mod constructor or FMLConstructModEvent for better thread-safety. - DeferredWorkQueue is now officially deprecated. You should use the enqueueWork method provided in all parallel dispatch events. - Entities store attributes within GlobalEntityTypeAttributes. If your entity does not have a registered attribute within here, then it will most likely error. For reference, this is not thread-safe. - Models now take in a RenderType to define what layer they will render within. By default, they use a no cull cutout layer. - Every mods.toml must have a license entry. Otherwise, your mod will error and crash. - LazyOptionals have a few changes as defined in 33.0.21. LazyOptionals map to LazyOptionals now using lazyMap. map returns a regular Optional. Note that this Optional will throw an error if the map function somehow results in a null entry. filter also returns an Optional now. Finally, a new method called resolve has been added to convert to an Optional directly. - ExistingFileHelper is now required within tag providers. Existing mod resources can be attached using '--existing-mod <modid>' as of 35.1.3. - Finally, I will mention world generation. Currently, all of world gen has been delegated to a data driven system. This is a mixed point for some users. Currently, forge is working on a more dynamic system to allow all of world generation to be handled within JSON files; however, that is not completely possible yet. Therefore, there are a few workarounds to handle this via BiomeLoadingEvent. Here, you can add configured features and structures to already existing biomes along with some other details I'll let you explore for yourself. - Creating biomes can either be done one of two ways. You can either create one using BiomeMaker for the Biome builder itself in some fashion and register it using the RegistryEvent or you can initialize a dummy biome and create it via JSON. To get your biome to spawn in the world, this is still handled within BiomeManager instead taking a RegistryKey (a concatenation of the registry and the object name). To set it as a spawn biome, that is handled when you build the biome itself. - Features have been changed in an interesting way. Instead of having a Feature with a single Placement, features can now have multiple placements. This means a placement can determine the amount, the height, the spread, etc. The way placements are handled are similar to a stack. The first placement you attach will be the last to execute if you need an example. Therefore, when creating a ConfiguredFeature, things like a count placement should be handled as the last chained method. There are a few helper methods within that makes it easier to generate count placements, although they will most likely remain unmapped until the next mappings push. Cyborgmas pointed out something with registering these entries that non-registered ones causes an issue with the codec, so they should be handled and registered probably within your common setup or at the very earliest after placements have been registered. - If possible, you should try to create all your world generation edits within JSON files to better prepare yourself for when the system comes out of the experimental phase. However, that is currently optional until everything updates. Hopefully I covered the gist of the changes from 1.15 -> 1.16.3. There are definitely many more that I've missed such as background music or the brain system within entities. However, those topics are best explained in greater detail with more specific questions. Same goes for the information I missed within world generation JSONs. Good luck on your updates!