Jump to content

Recommended Posts

Posted

basically i want this when i hold right click my item: https://imgur.com/oT5zp27

thats all, i cant get my particles to shoot

 

world.addParticles(particles,x,y,z,xspeed,yspeed,zspeed)

i need to know what i have to put in x,y and z SPEED because i there is no other values (i guess for x,y,z positions i get player position and for y the player eye height)

Posted

For position, I believe that the player position is where the player's feet are, so you should probably add an offset to fix that (player eye height would be a useful start point, but I'm not sure how it would look to spawn particles inside the player's head).

As for the speed, that should probably be the player's look vector scaled by some amount (depending on how fast you want the particles to travel).

Posted (edited)
5 hours ago, Alpvax said:

For position, I believe that the player position is where the player's feet are, so you should probably add an offset to fix that (player eye height would be a useful start point, but I'm not sure how it would look to spawn particles inside the player's head).

As for the speed, that should probably be the player's look vector scaled by some amount (depending on how fast you want the particles to travel).

world.addParticles(particles,player.getPosX(),player.getEyeHeight() + 0.5,player.getPosZ(),player.getLookVec().x * 1,player.getLookVec().y * 1,player.getLookVec().z * 1);

 

like that right?(i wrote the POSSIBLE right answer for if i forget it and i have the answer )

Edited by ElTotisPro50
Posted
8 hours ago, Alpvax said:

For position, I believe that the player position is where the player's feet are, so you should probably add an offset to fix that (player eye height would be a useful start point, but I'm not sure how it would look to spawn particles inside the player's head).

As for the speed, that should probably be the player's look vector scaled by some amount (depending on how fast you want the particles to travel).

1 didnt work so i multiplied it by 100,appart of that the particles stay in the same place (btw getEyeHeight or getHeight makes that the particles doesnt spawn i dont know if i have to add or substract something to eyeheight but it doesnt matter so im using getPosY() + 1.5) 

world.addParticles(particles, player.getPosX(),
                player.getPosY() + 1.3,
                player.getPosZ(),
                player.getLookVec().x * 100, player.getLookVec().y * 100, player.getLookVec().z * 100);

 

Posted
15 hours ago, ElTotisPro50 said:

getEyeHeight or getHeight makes that the particles doesnt spawn i dont know if i have to add or substract something to eyeheight but it doesnt matter so im using getPosY() + 1.5

Yes, the eye height is the height difference between the player's feet and their eyes. You still need to use the player's y position as a baseline (i.e. getPosY() + getEyeHeight()).

Posted
5 hours ago, Alpvax said:

Yes, the eye height is the height difference between the player's feet and their eyes. You still need to use the player's y position as a baseline (i.e. getPosY() + getEyeHeight()).

and for the  x,y,z speed? as i told you tha particle stays with me it doesnt shoot where im looking

Posted

Unfortunately I haven't actually looked at particles before, so can't be much help.

However, if you look at the source of the constructor you are using you can see that it divides the velocity by the magnitude of the velocity (plus some other maths) so the particles won't move very far/fast.

I would suggest experimenting with the `setParticleSpeed` method, which just sets the raw values.

Posted

@Luis_STi opened the class which is in package net.minecraft.client.particle; and i cant see anything about setParticleSpeed, even if i CONTROL+F to search in all class there is no word called speed

 

create instance of my particle?, i would instance Particle ABSTRACT class

 Particle particle = new Particle() {
            @Override
            public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) {
                
            }

            @Override
            public IParticleRenderType getRenderType() {
                return null;
            }
        };

 

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

    • Different problem now. https://paste.ee/p/iDo8lS35
    • I would like to have a BoP sapling drop from my block if it is also installed. I think I have done everything and I cannot pinpoint the problem, which is the error in the logs that appears when joining a world:   [Worker-Main-11/ERROR] [ne.mi.co.ForgeHooks/]: Couldn't parse element loot_tables:grasses:blocks/leaves_block com.google.gson.JsonSyntaxException: Expected name to be an item, was unknown string 'biomesoplenty:magic_sapling' My code:   LootItemConditions.CONDITIONS.register(modEventBus); public class LootItemConditions { public static final DeferredRegister<LootItemConditionType> CONDITIONS = DeferredRegister.create(Registries.LOOT_CONDITION_TYPE, Grasses.MOD_ID); public static final RegistryObject<LootItemConditionType> IS_MOD_LOADED = CONDITIONS.register("is_mod_loaded", () -> new LootItemConditionType(new IsModLoaded.ConditionSerializer())); } public class IsModLoaded implements LootItemCondition { private final boolean exists; private final String modID; public IsModLoaded(String modID) { this.exists = ModList.get().isLoaded(modID); this.modID = modID; } @Override public LootItemConditionType getType() { return LootItemConditions.IS_MOD_LOADED.get(); } @Override public boolean test(LootContext context) { return this.exists; } public static LootItemCondition.Builder builder(String modid) { return () -> new IsModLoaded(modid); } public static class ConditionSerializer implements Serializer<IsModLoaded> { @Override public void serialize(JsonObject json, IsModLoaded instance, JsonSerializationContext ctx) { json.addProperty("modid", instance.modID); } @Override public IsModLoaded deserialize(JsonObject json, JsonDeserializationContext ctx) { return new IsModLoaded(GsonHelper.getAsString(json, "modid")); } } } protected LootTable.Builder createLeavesDropsWithModIDCheck(Block selfBlock, Item sapling, Property<?>[] properties, String modIDToCheck, float... chances) { CopyBlockState.Builder blockStateCopyBuilder = CopyBlockState.copyState(selfBlock); for(Property<?> property : properties) { blockStateCopyBuilder.copy(property); } return LootTable.lootTable() .withPool(LootPool.lootPool().setRolls(ConstantValue.exactly(1.0F)) .add(LootItem.lootTableItem(selfBlock) .when(HAS_SHEARS_OR_SILK_TOUCH) .apply(blockStateCopyBuilder))) .withPool(LootPool.lootPool().setRolls(ConstantValue.exactly(1.0F)) .add(this.applyExplosionCondition(selfBlock, LootItem.lootTableItem(sapling)) .when(IsModLoaded.builder(modIDToCheck))) .when(BonusLevelTableCondition.bonusLevelFlatChance(Enchantments.BLOCK_FORTUNE, chances)) .when(HAS_NO_SHEARS_OR_SILK_TOUCH)) .withPool(LootPool.lootPool().name("sticks").setRolls(ConstantValue.exactly(1.0F)) .add(this.applyExplosionDecay(selfBlock, LootItem.lootTableItem(Items.STICK). apply(SetItemCountFunction.setCount(UniformGenerator.between(1.0F, 2.0F)))) .when(BonusLevelTableCondition.bonusLevelFlatChance(Enchantments.BLOCK_FORTUNE, NORMAL_LEAVES_STICK_CHANCES)) .when(HAS_NO_SHEARS_OR_SILK_TOUCH))); } I don't know. Am I making a mistake somewhere? Am I forgetting something? Should there be something else?
    • https://paste.ee/p/h1JX9bbl
    • Add the latest.log from your logs-folder
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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