Posts posted by Drachenbauer
-
-
Posted ·
Edited by Drachenbauer
add tagHello
I created a mod, where i recreated model, text-layout and other stuff for the build-in signs in an older version of minecraft forge, where it worked properly.
Now i´m updating it, but i found a problem:
When i open the sign edit screen, i want to instantly replace it with my own.
But the class has now 3 constructor arguments.
The first one is the SignTileEntity, and i tried to get it through the ObfuscationReflectionHelper, but none of the names of the matching fild in the class AbstractSignEditScreen can be found during a testrun
How can i get the used SignBlockEntity to pass it into the constructor of my edited screen? -
On the web there are a lot of custom player totem resource-packs available.
But they all require a copy of the player-skin-texture renamed as the totem-texture.
This requires reinstalling the pack every time, when you change your player-skin.So i think about making a mod to reproduce how player-head-blocks get their texture.
How can i do this while using a a custom json item-model, that i created in blockbench, that a player-skin fits on?
I taught about having both arm sizes in the model and find a way to detect the model width (3-pix-arms or 4-pix-arms), that the given player uses to hide or shor each arms on the model.
Best regards Maxi
-
Edited by Drachenbauer
now i try this solution:
It uses the deprecated variant of getQuads.
but if i try to replace it with the better one, new IBakedModel() says, that i have to use the old one, because it´s an unimplemented method.
How can i use the new one without this error?
Now i found IForgeBakedModel.
How can i use it instead of IBakedModel here?
-
Posted ·
Edited by Drachenbauer
Hello
If i follow this link to Forge documentations:
https://mcforge.readthedocs.io/en/1.15.x/models/advanced/introduction/
I only see text on white ground, no graphics of the page-design...
Why this?
-
-
-
-
-
-
Edited by Drachenbauer
I noticed, that i can jump higher, if holding this umbrella.
Than i saw a video of someone, who made a tower of scaffolding, placed a cage of scaffolfing ontop and filled it with chckens.
Then he removed the bottom scaffolding and the chickens fell down slowly and took no damage at landing on the ground.
how can i attach this exact behavior to my umbrella?
In the ChickenEntitx-Class i find just this:
public boolean onLivingFall(float distance, float damageMultiplier) { return false; }But nothing about the falling-speed.
-
Posted ·
Edited by Drachenbauer
Hello
I noticed, if i use annotations like
@Mod.EventBusSubscriber(Dist.CLIENT)or
@OnlyIn(Dist.CLIENT)Eclipse cannot autocompleete the "Dist" in the brackets.
it only tells me, that it does not know the word "Dist" and does not give me this import as a click-option:
import net.minecraftforge.api.distmarker.Dist;Everytime i have to find, copy and paste this import manually.
Why the autocompleete does not work here?
-
Edited by Drachenbauer
https://www.youtube.com/watch?v=6te-IdUIBdY
here he hoints his arm up while holding an umbrella.at the end of the video.
but there in no link to the mod with the umbrella...
I notived, i fall slower with the umbrella, bot still get a tiny little bit of damage on landing.
How to remove the fall damage compleetely, if holding that item?
Edit: i canceled the LivingFallEvent, if holding the umbrella.
Now i can jump from as high as i want with the umbrella without being damaged.
-
-
-
-
-
-
I try to use this:
public Multimap<String, AttributeModifier> getAttributeModifiers(EquipmentSlotType equipmentSlot) { Multimap<String, AttributeModifier> multimap = super.getAttributeModifiers(equipmentSlot); if (equipmentSlot == EquipmentSlotType.MAINHAND) { multimap.put(LivingEntity.ENTITY_GRAVITY.getName(), new AttributeModifier(LivingEntity.SLOW_FALLING_ID, "Slow falling acceleration reduction", -0.07, AttributeModifier.Operation.ADDITION).setSaved(false)); } return multimap; }
But i still have a problem with this line:
multimap.put(LivingEntity.ENTITY_GRAVITY.getName(), new AttributeModifier(LivingEntity.SLOW_FALLING_ID, "Slow falling acceleration reduction", -0.07, AttributeModifier.Operation.ADDITION).setSaved(false));i cannot use LivingEntity.SLOW_FALLING_ID, because it´s private
So i tryed this:
multimap.put(LivingEntity.ENTITY_GRAVITY.getName(), LivingEntity.SLOW_FALLING);But LivingEntity.SLOW_FALLING is also private.
what is the right setup for this line?
-
-
Edited by Drachenbauer
i thaught, this is the way to add a modifyer...
You told me to look in Entity living.
And i thaught, this is the way, it is used there.
in the sword i founf this:
public Multimap<String, AttributeModifier> getAttributeModifiers(EquipmentSlotType equipmentSlot) { Multimap<String, AttributeModifier> multimap = super.getAttributeModifiers(equipmentSlot); if (equipmentSlot == EquipmentSlotType.MAINHAND) { multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", (double)this.attackDamage, AttributeModifier.Operation.ADDITION)); multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", (double)this.attackSpeed, AttributeModifier.Operation.ADDITION)); } return multimap; }
but in "SharedMonsterAttributes" i cannot find the "ENTITY_GRAVITY" attribute.
So how els can i put this attribute there?
If i replace "SharedMonsterAttributes" with "ForgeMod", it also cannot find "ENTITY_GRAVITY" in there...
The only appearens of "ENTITY_GRAVITY", that i can find, is in "LivingEntity"
-
for slow falling, i added
private static final UUID SLOW_FALLING_ID = UUID.fromString("A5B6CF2A-2F7C-31EF-9022-7C3E7D5E6ABA"); private static final AttributeModifier SLOW_FALLING = new AttributeModifier(SLOW_FALLING_ID, "Slow falling acceleration reduction", -0.07, AttributeModifier.Operation.ADDITION).setSaved(false); public static final net.minecraft.entity.ai.attributes.IAttribute ENTITY_GRAVITY = new net.minecraft.entity.ai.attributes.RangedAttribute(null, "forge.entity_gravity", 0.08D, -8.0D, 8.0D).setShouldWatch(true);above the constructor in the UmbrellaItem class and
IAttributeInstance gravity = player.getAttribute(ENTITY_GRAVITY); gravity.applyModifier(SLOW_FALLING); player.fallDistance = 0.0F;in "onUsingTick".
but falling is as fast as normal and i see the collison-particles on landing.
Must i place the lines in the seccond code-snippet into another method?
-
-
-
How do i make minecraft use my modified version of a class instead of the original one for existing stuff?
in Modder Support
Posted ·
Edited by Drachenbauer
i´m trying to tell minecraft to use my modyfied candle block class for the existing candle-block.
This post https://stackoverflow.com/questions/29523975/change-final-variable-defined-in-another-java-file told, that it should be possible to override ecisting classes from minecraft by recreating the original package-path from the minecraft referenced library into the src/java folder of the mod and put the changed class with original name in there.
But now i get an error:
java.lang.module.ResolutionException: Modules candlepositionsmod and minecraft export package net.minecraft.world.level.block to module forge at java.base/java.lang.module.Resolver.resolveFail(Resolver.java:901) at java.base/java.lang.module.Resolver.failTwoSuppliers(Resolver.java:815) at java.base/java.lang.module.Resolver.checkExportSuppliers(Resolver.java:736)
How to fix?