#General & Development Help
1 messages ยท Page 8 of 1
should be straightforward to fix :)
What's the point of swap entity position? Doesn't exchange in base ars do that?
yes
but i want it to scale with max health and max mana
so the more life/mana you have the more absorption
ofc i will make it balanced by using a ln function
so the more hp you have, the less the improvement
Oh I see
its similar but different
(something to counter the absolute bullshit that happens when you get end game trinkets and end game glyphs from my mod)
if you want nuts spells...i remind you that AM2 had mana link and mana blast
AM2?
- life link but with mana, meaning that the mana is basically shared between the two entities
- consumes all the mana of the user, dealing a proportional damage
as in ars magica?
Ars Magica 2
time to get some 'inspiration'
this is the correct way to have a spell which will change with the config right?
yes but you need to make sure the amp config value is defined by overriding build config IIRC
i feel really stupid for asking this here, but does anyone know how to summon dust particles?
why is balancing T4 glyphs so painful
look at how other glyphs do it
I do it for ToB Sentient Wrath Glyph
๐
(this scales directly with exp levels, and it dicreases them by a lot) nerf needed?
i just lost 3h+ of exp grinding
great
i love it
still
it does big pp damage
it got nerfed
really quickly
fixed it dealing too much damage
does anyone know what this is used for?
There are two attributes that were unified
But old name remained as alias to not break add-on
oh ok
what is the cheapest way to calculate a sphere around a center point? Is it with BlockPos.withinManhattan() then check for distance from the center? Im using that for the aura
for blocks or entities
does anyone know of a library or built-in forge thingy that could allow me to create custom visual effects for my aura form, such as an actual transparent sphere around the player to represent the range of the aura while it is active?
i'm new to modding so i have no idea how or what can do that
I'd guess that's shaders territory
Not like, the iris/oculus ones
But the actual computer graphics term
Shaders:
Little shaders type example : https://gist.github.com/gigaherz/b8756ff463541f07a644ef8f14cb10f5
Vanilla Shaders Guide : https://docs.google.com/document/d/15TOAOVLgSNEoHGzpNlkez5cryH3hFF3awXL5Py81EMk/
Shadertoy : https://www.shadertoy.com/
The other option would be to use particles, but you won't get the pretty effects
I never got to work with shaders, even if I should since the results can be gorgeous
oh, that looks like big brain territory ;-; i guess i'll leave that for later then
ty for the references tho โค๏ธ
All graphic stuff kinda is
Also why geckolib library exists for animation
The other option is literally writing math functions for each bone movement
The way vanilla handles entity rendering is whack
But I'm just complaining because I can't have cool transparent entities without making other entities nearby dissappear.
Does the zone thingy requires a shader now, or did you not get to that yet?
Cause mc started to use then more since 1.17, at least for internals
So some render types became shaders iirc
DOMAIN EXPANSION GOES BRRRRRR
why not copy some of burst's code
also im definitly stealing it if it's not available for 1.19.2
Oh well maybe it was fixed then, that complaint was more so meant for 1.16.5.
@gleaming fox i'm making it for 1.19.2 then ill port to 1.20 (when i eventually figure out how to do that). And the code for the sphere is similar to the one used for burst, with the exception that instead of creating a new resolver for each blockpos, im just resolving the existing one for each blockpos (and adding some if's for the additional effects of the augments)
and also for some reason it is not working with glyphs that affect entities (such as hurt) ;-; gotta figure out how to fix that
bro is our savior
maybe use the AABB method?
Place break point -> start with debug
You can follow step by step what happens when your code is executed
system.out.println for the win
player.sendRawMessage FTW
ill try that ๐ i also just noticed that there is an EntityHitResult() that can be passed to the spell resolver, so i guess that could be the problem
i was always passing just BlockHitResult
here is a sample i use
its really good
basically how all glyphs that affect entities in an AOE work
oh it works now, wonderful ๐ ty guys
yeah, only problem now is that it is also affecting the player
gotta add that if for checking that
my mod adds filter self
basically if the player is the target prevent/continue the spell
i think ill just hard code the filter, as i don't think an aura affect should also affect the player itself
imma send the code i use
only two lines
(very hard work)
maybe amp should make the spell also target the user?
or dampen
its just one if statement anyway
im using amp to make the sphere solid (affect all the block within the aura)
and dampen to make it only affect a half sphere area
dampen makes it more like a dome instead of a sphere
it is also possible to have multiple auras active at the same time
ill send the jar after i fix the entity thing and find out how to generate the jar
it has been a while since i did that c.c
gradle>project>tasks>build>build
to get recipes do:
gradle>project>tasks>forgegradle runs>runData
oh, the glyphs i added don't have recipe yet ;-; started working on this mod friday so there are still a lot of things left to do
dwdw
oh it is that easy to build a jar? thats nice to know, ty ๐
example of recipe
public static class GlyphProvider extends GlyphRecipeProvider {
public GlyphProvider(DataGenerator generatorIn) {
super(generatorIn);
}
@Override
public void run(CachedOutput cache) throws IOException {
Path output = this.generator.getOutputFolder();
recipes.add(get(WaterSpear.INSTANCE).withItem(ItemsRegistry.WATER_ESSENCE, 4).withItem(PURPLE_ESSENCE.get(),4).withItem(RegistryHandler.ENCHANTED_DIAMOND_BLOCK_ITEM.get(), 1));
for (GlyphRecipe recipe : recipes) {
Path path = getScribeGlyphPath(output, recipe.output.getItem());
DataProvider.saveStable(cache, recipe.asRecipe(), path);
}
}
here
#1019639765093589153 #1189895901028823110 i plan to add all of this to the mod. The auras would originally only be for the titans but i guess the concept is just too cool to not have it in the spell book
ah nice, i thought it would be with some json magic. Way easier this way
maybe make the two seperate mods?
the runData task (GOD BLESS WHOEVER CREATED IT) makes us not have to worry about json as it creates a json file from scratch
ah, so there is still json magic, we just dont see it haha
instead of that run genIntelliJRuns and then it creates on run config for the IDE on top right
you probably already have stuff like runClient. just pick runData from the drop down
already had it
i was just giving him the path incase he needed it
ofc having a dropdown menu is easier
ok entity thing fixed, ill build the jar now
hmm, i ran the task, now where is the jar ;-; theres a build directory with a bunch of things inside
oh
it is this i think
lets go
its inside build/lib/
use with caution, the tick rate for the aura on blocks is 1 (it resolves the effect once for every tick, so the spell resolves 20 times per second)
i tried with higher tick rate but then there were some things that did not work well
for example, with 1 tick rate, you can use aura + amp + intangible to pierce through a mountain while flying an elytra
actually 1 tick rate is exactly what i need
when i tried increasing it to like 3 or 5, you would hit the hall bc the spell couldn't catch up with the speed
btw bloodmagic has sigil of supression which removes fluids from surrounding temporarily. You might wanna look at its algorithm and see if you can optimize or something
time to recreate malevolant shrine
oh also, if you want the aura to affect entities you have to use pierce (i forgor to add that to the description)
by default it only targets blocks
really?
why not make it the reverse
by default it targets entities like burst, linger, etc
how about using sensitive instead of pierce? it would be more intuitive as other glyphs also do the same
the addon devs defo need to set some sort of augment conventions
when using burst i rarely used it on entities and i always had to spend that one extra slot for the augment, so i decided the default would be blocks
also all the augments are more building/manipulation focused
i will leave combat power to the titans
(things that affect entities)
yeah that makes sense, i have to reorganize which augments do what
i was already using sensitive to make the aura only affect a half sphere downwards (an inverted dome)
yeah, but im with lots of free time now, as uni is pretty chill and also im working from home. Also i'm using this project to learn how to read code as my boss once told me that reading code is harder than writting it
most of the things here dont have documentation so the only way is to read what the code does
yeah
i made my first domain expansion with AURA
Watch Untitled and millions of other Minecraft videos on Medal, the largest Game Clip Platform.
look at this bs
how unabalanced, the dev who made this glyph sure knows nothing about game mechanics
the aura
ah yes
it sure is broken
but not as much as a 114 damage no amp iframe skipping monstrocity*
also i forgor to mention, you can cast the aura on entities (you could have a sheep with a domain expansion)
how?
just cast it on an entity (aim at the entity and cast it)
yesterday i put a break aura on a villager and put a zombie to chase after it
oh, thats cool
the squared shape thing?
square shape is for making huge square-ish things
there is also a circle thing
you can create many variations of square-ish things with the glyph
like cubes, vertical squares, horizontal squares and ramps
either hollow or solid
40???
same with the circle glyph
isnt that too much
took me a week t ogrind
(no projecte
also it costs thousands upon thounsands of source jars to create a T9 monocle
and you need five or six to get a T10
getting to purple essence is one hell of a grind
fair but 40 is still way too high imo
most weapons in endgame are around 15 or 20 at max
this feels like ATM level of power creep unless that was your intention
it is
I made one in neg too, it was for testing on whether to add a non lingering plane effect
Circle included as variation with an augment
Basically the building glyph thread without aura, as I said there
Nothing of that would land in 1.19 so you're fine to release it there, at least for what concerns me
hm okay ig
with aura a whole new world of broken spell is open to me
ah okay ๐ i just wanted to create an implementation that would fullfill what i was looking for
bro's like me
Best case is that it simply gets integrated later on in base Ars
doesn't seem broken as tier 2 from the server testing
aura and chaining are beyond broken
also, tyvm for the trail form @radiant depot i think that one is also one of the coolest forms
what is the default maximum mana you can get with base ars?
I don't think anyone ever bothered to calculate that
what size should a model be in blockbench in order for it to be of similar size to the default steve (without scaling it in the code)?
so a 16x16x16 cube in block bench is the same size as a minecraft block?
Yes
what about the texture size? should i worry about that or can i just put a size that fits everything leaving blank space?
like, would this be ok or would it cause some problem?
ty โค๏ธ
are you making an armor ?
modded entity
there are no restrictions for large the texture size can be. Pick any shape or size
it is generally a good idea to unwrap UVs efficiently so that sides are neatly packed and space is not wasted
its mostly optimizations and not that a big of deal. You can always get to it later
ah okay, thank you ๐
good luck with that
Most likely due to Minecraft handling big mobs terribly
A stationary mob might be slightly more manageable maybe?
Like, anchored to a place and with lots of ranged attacks. As most of the issues of big mobs are pathfinding related
The issues with the hitbox can be solved by making it a multipart like the ender dragon
the main goal of the titans is being a powerful companion, so i think making them stationary wouldn't work
also i was thinking about making them about 3-4 blocks tall
to deal with pathfinding problems i think i will make a Goal like StayCloseToPlayer
which would make them not move much if they are within a certain distance of the player
and if they get too far they would try to follow the player
i think that would also deal with the problem of companions getting in the way when you are trying to do things
also the plan is to make every titan able to fly, so i think that could help with not getting stuck as they would just go over stuff
Ah ok, 3-4 might be manageable
I was thinking to idk, at least 10
Going towards 20
oh that would be too much haha but ill definitely try making them quite big just to see what happens
im afraid making them too big would make riding them inconvenient
That's for sure
I believed you wanted the big boss then a smaller version as tamed
that could be one way to do it, i guess
is it possible to increase the max mana perk?
if not then i will just edit my own ars version
just looking at the code responsible for calculating/managing the player's mana is giving me a headache
what do you want exactly?
alex, would the new "data attachment" system be enough for player mana? (not source since that should be still be a cap )
so here is the thing
no idea on what that is
i'd guess an alternative to caps but haven't checked any details of it
and im having a headache as i want to use capabilities to add bonus mana to the player's original mana
i think i found some kind of solution?
shouldn't you use an attribute modifier for that?
also does the player's mana get "updated" every tick?
mana is recalc'd every few ticks
why attribute?
because max mana is an existing attribute, from where the max mana of the event is calculated
you can add flat or multipliers to it
like this?
now that i think about it, how's the actual situation in 1.19
cause i only reworked 1.20
are enchants etc. still added manually ?
Repository for the Ars Nouveau minecraft mod. https://www.curseforge.com/minecraft/mc-mods/ars-nouveau - baileyholl/Ars-Nouveau
yep
then you're probably having an easier time to simply add up buffs by using the event
oh that way when the mana is calculated i can grab the new max mana and update it?
listen to it, do your calculations, cache if you need, edit the value inside the event
thanks
the max mana perk won't take in account most of the buffs anyway in 1.19
it's barely fixed to take everything in my 1.20 pending PR (attribute based)
you can multiply manually before adding up to the old max tho, if math doesn't lie...
likely yes
what a pain in the ass
now i only need to do this for mana regen
iirc capabilities stay on the player even after the player logs off right?
they should be saved to nbt, yes
excellent
are there any way to get the player who started the ritual ?
it's not saved, from what i remember
at best you can try to pick the nearest player
or require something that has the player data on it as ritual augment
what i did was i grabbed all the players in a 3blocks radius and picked the one with the criteria i wanted
(not telling what criteria)
no$
gradle is taking one long ass time to update
seems like i just had to complain for it to finish
nevermind
it was an error
but now i got it to work for real
at almost 2 am
it didn't work
boy oh boy i sure do love gradle
im crying ๐ญ
no errors (so far)
why did mojang make all the damage sources private
now i cant use these fancy sources
back to plain old
DamageSource source = buildDamageSource(world,shooter);
can't even make it bypass armor
i am now big sad
Mixins ftw
mixins.
?
ah i see
i searched what it was
but the question is, how can i create a damage source, with the least amount of efforts possible? (and the best results ofc)
Great! I am a horrible teacher
Lul, u made it this far! Half of my class didn't even know how to code
i will then start to study how it was created
oh are you a CS teacher?
There should be an utility method in base ars
Naw, student.
but reading all the new classes is a pain in the ass
And well, the datagen
Smt like damage utils
Glad Alex was here to save the day
ehehehehe
now i can do what i like to call
"the funny"
how do i get the level accessor?
do i cast it from the ServerLevel level or something else?
found it
i did not find it
;-;
The level classes I believe implement Level Accessor
yes
my juvenile brain was too stupid and thought that Level world was ServerLevel level
(this is the proof that all my knowledge as a programmer (nothing except copycatting) is all a sham and that i am a fraud)
It's all about acting like you know what it is. There's a fair chance they don't know either xD
time to pull an all nighters to finish porting
i wish that was also the case in math class
because i think i am the only confused one there
anyway
back to the treacherous labyrinth (baililey's code)
Good luck, may your journey bear fruit
thanks
i really want to create my own spell tier
but creating the book sounds like a pain in the rear
well i will do it later if i have the motivation
Fare thee well traveler, may u have a restful slumber.
maybe ask so-so for help? he did make tier 4 after all
I think they only meant for a new tier, is it really hard in 1.19?
It should be more complex before 1.19 due to tiers being enums etc.
I dunno that whats so-so told me
He literally just does
public static final RegistryObject<Item> TIER_FOUR_BOOK = ITEMS.register("arcane_book", () -> new SpellBook(ITEM_PROPERTIES_FIRE,TierFourEffect.FOUR));
lol
It's more an effort of making the textures and model
i migrated the Ars Trinkets project to 1.20 early
What was the main reason for that? The other addons?
let 1.19 die
how do i fix this?
do you use mixins ?
idk what that is
okay, check your build.gradle and comment out that line
refresh gradle project and gen runs
it worked but i crashed
seems like its a probleme with my glyphs
well it worked but none of my items were added
if using custom creative tabs, ensure items are registered before tabs if using displayItems()
the event system is better because it happens after all the registration (but use whatever system you prefer)
sorry for the extra ping
I was supposed to tell you to stay on forge 47.1.3 just in case
i used to be able to add them to the tab using the Item.Properties#tab method
ESSENCE_LOTUS_3 = ITEMS.register("essence_lotus_3", () -> new MagicItems(new Item.Properties()/*.tab(...)*/.rarity(Rarity.COMMON).stacksTo(1), 15, 10,0,0));
```like this
yeah that field is gone now
which tab you want to add to ?
the basic ars tab
use the event system that I linked
@SubscribeEvent
public void buildContents(BuildCreativeModeTabContentsEvent event) {
// Add to ingredients tab
if (event.getTabKey() == CreativeModeTabs.INGREDIENTS) {
event.accept(ITEM);
event.accept(BLOCK); // Takes in an ItemLike, assumes block has registered item
}
}```
use the Ars Tab key there
private void doTabsStuff(BuildCreativeModeTabContentsEvent event) {
if (event.getTab() == CreativeTabRegistry.BLOCKS.get()) {
for (var item : Registration.ITEMS.getEntries()) {
event.accept(item::get);
}
}
} ```
(Event listener rules apply)
many thanks
@SubscribeEvent
public void buildContents(BuildCreativeModeTabContentsEvent event) {
if (event.getTabKey() == CreativeTabRegistry.BLOCKS.getKey()) {
event.accept((ItemLike) ModRegistry.ITEMS);
}
}
``` something like this?
it didn't work
im testing alex's solution
?
@SubscribeEvent
public void buildContents(BuildCreativeModeTabContentsEvent event) {
if (event.getTab() == CreativeTabRegistry.BLOCKS.get()) {
for (var item : ModRegistry.ITEMS.getEntries()) {
event.accept(item::get);
}
}
}
``` here is my code after i took what you wrote
you are using event.accept() with ITEMS
Alr, then it's because the event listener is not set correctly?
^ the image
my monkery brain is too stupid to understand
bus.addListener(this::doTabsStuff)
Where bus is the FMLJavaModLoadingContext.get().getModEventBus()
you need this like, idk, in your mod constructor
im having troubles attaching my capability to my entities
the capability is registered, but it just does not appear on entities
@SubscribeEvent
public static void onAttachCapabilitiesEntity(AttachCapabilitiesEvent<LivingEntity> event) {
System.out.println("attach Cap Entity triggered");
if (event.getObject() instanceof Player) {
Objects.requireNonNull(event.getObject());
if (!event.getObject().getCapability(ArcaneLevelsProvider.PLAYER_LEVEL).isPresent()) {
event.addCapability(new ResourceLocation(ArsTrinkets.MODID, "properties"), new ArcaneLevelsProvider());
System.out.println("Arcane Level Capability Created");
}
}
}
here is the code i use
Is your class annotated with the event bus
I don't think it's necessary to check if a capability is prrsent on an object, this is only called when the object is first created
Other than that, how's the capability provider class lookin?
if anything logging at all?
im currently taking inspiration (stealing) on how AN's capabilities were written
Lul
Might help having a bit of theory?
Capabilities are a Forge system that allows cross-mod interactions by allowing capability providers to
dynamically respect contracts and provide specialized behavior without requiring the implementation of many interfaces
or hard dependencies on mods.
Especially the fact that caps are not synced to clients by default
this is hurting my brain on a metaphysical level
Which is probably why Neoforge yeeted some of it out of the window and rewrote it
In 1.16.5 it was even worse
I hope the new system in 1.20.4+ is easier to code
it is
would you mind lending me a hand?
lazyoptionals are gone
capabilities are split into data attachments and regular capability with nicer api
No more LazyOptionals? nice
Mine would go missing alot
it's all just a normal nullable or optional in some cases
it has a lot of niceties like opt-in automatic caching etc
did you register the capability with RegisterCapabilitiesEvent btw?
oh, i spotted the issue maybe
@gleaming fox swap <LivingEntity> to <Entity>
ah now that i think about it, it was said that you needed to use the โoriginal classโ and not one of its implementations/child
yes, i made the event log when it was triggered to the console
IT WORKED
now i need to verify that it does transfer across dimensions and stay after logging out
like this?
i guess?
i'd honestly just copy all the methods in the CapabilityRegistry#EventHander and then run tests
seems like my spaghetti code caught up to me
sad
only problem is i need to make sure that my hashMap gets created correctly
i think im stupid
i was checking the wrong hand
we all feel like that sometimes
I CANT
I HAVE BEEN CAHSING THE SAMA SRUPID NULL POINTER ERROR FOR ALMOST AN HOUR
i managed to single out the method that was messing up my code
it was because my fucking hashmap was empty
it wasnt getting initialized propelr
y
i want to ry ๐ญ
wait
im incrediblily dumb
i had the player's base level be 0
and the minimum value for breakthrough was 1
ha
ahahha
i want to die
well at least its kinda working?
now i just need to do some light corrections here and there
ehehe
if you convert to what you would need in vanilla, only palyers with limitless ressources would be able to become a max level player without cheating or using project E
still its a nice progression goal as you can slaughter your path to immortality or use ressources
@bright shore can i steal the propagate glyphs and add them to my mod (temporarily) as i find them really fun to use (i miss them and i think other people also do)
god migrating entities from 1.19.2 is giving me brain rot
Once you make spaghetti, you will never forgetti
learned it the very hard way
but hey it worked
(at least it does for the forseable future)
whoever decided to change the particle api has got my thanks (why make my life so annoying?)
im having an issue
i managed to clone dkmk's form missile class and updated it for 1.20
but i can't seem to actually create the entity?
i found a lead
im going to follow it
if i can't find a solution i will sleep on it
it is a problem with the ReflectionHandler#xRot being a null number
trying to use the shooter#GetxRot() method
success
i am happy
yay
finaly
a problem which had a straightforeward solution instead of making me go through eight different classes
maybe java is not that bad ? (it is)
orbit is already reworked right?
If you pick the latest maven build yes
https://github.com/baileyholl/Ars-Nouveau/blob/1.20/README.md
PSA: the latest build number is here
Repository for the Ars Nouveau minecraft mod. https://www.curseforge.com/minecraft/mc-mods/ars-nouveau - baileyholl/Ars-Nouveau
thanks
#addon-showcase message @radiant depot is this Elemental or SBM
regardless it looks awesome!
SBM
and pretty simple to code too
the hard part is mixing in the fluid requirements
if you only need items, all you need is a recipewrapper and a new tile/block to pass it
would it be possible to have a fake item that you put on the pedestal that represents the item or needing atleast 1 item is a design choice
maybe like a parchment with the name of the item or something. Could maybe teach multiple recipes like that
wdym
wixie rules apply, the wixie will attempt to craft all the items on nearby pedestals, if the ingredients are available
you put the target item on a pedestal next to the station correct
if you only need one item, you can click directly on the workstation
for multiple recipes, can you just put down more pedestals with more items ?
the two cooking pots are both alternating between tomato sauce and pasta
while the cutting board between raw pasta and cut meat
in the vid
potions too
you only need one wixie for going from nothing to a full potion
not at least two
are wixies redstone controllable
yes
how tf do advancement work
i will look into it later
@bright shore is it possible to know what the spellContext.setCanceled(true); does in the propagate self method?
also i didn't get your anwser concerning the possibility of adding the propagate glyphs to my mod for 1.20 (whilst we wait for you to migrate to 1.20)
They're in NEG so I don't see why you'd need them in your mod, just use that
It prevents the rest of the spell from running in the old context, which wasn't on self
I guess? IDK.
Alex said to use that to replace TMG and/or Omega's utility glyphs until they updated and Omega isn't updated yet so my recommendation is take Alex up on the offer if you can
Or you can yoink the propagate code from me but note that I'm considering splitting Omega up into different add-ons for 1.20 and one of them will definitely have propagates in it
Reset context is one of the reasons why neg is not on curse
That update will break that kind of glyphs
If I manage to get the spell binder working I might release it. But that thing is a gui mess in the first place
Oh yea isn't that merged in 1.20?
I should test some stuff with it because I realized a couple other edge cases that I'm curious how they work and how they're supposed to work
i yoinked the code and i have a config uption to enable the glyphs when the mod registers
may i have the latest version ?
my code is half finishe
d
and im too lazy to be bothered to finish it now that i know that the glyphs exist somewhere else
๐
But relaunch the instance and you should find the updated in servermods folder
i have it now
thx
btw i did manage to change the player's mana but it seems that the spellbook's mana bar is not updated?
Enable the debug numbers?
But might just be that the spellbook relies on another value, unsure
There is a variable in ArsNouveauAPI, put it true via code
ok
im going to play a bit
first real break since i started porting and creating a new version
Oh, and my pr to fix mana calculation was merged few hours ago so you might want to update the ars version too
Mostly affects the enchantments
So not essential, depending on what you need to check
i wait for the MaxManaCalcEvent and i add a flat amount to the event
I double checked and it should rely on the event too, so no idea why
you could try to track it down with debugger, I guess
yes
what was the mod that added greater aoe and dilate time?
Omega
they honestly feel way less needed now that you can simply have longer spells
dilate time feels a bit useless
oh i forgot about that
im still stuck in my mentality as a 1.19.2 gnome who has to save every glyph slot
Oh longer spells? What warranted the change?
The infinite spell config of 1.20
It needs to be enabled, sure
But well, you also have to choose on if to have the add-on that allow stronger stuff
#addon-announcements i'd love some Farmer's Delight Ars Nouveau recipes
new food items would be on the table to be added with that compat, but spriting them is out of question in this period
i'll def need to (on my server but something here too) open some threads for "open submissions" or smth for people that want and can give random help, on building and art sides
at least before i go nuts with too many things to split my head on
how do i fix setCanceled not working anymoreN
?
i need to release a quick patch
or else people who downloaded my mod will come to strike my fingers
That would be hilarious.
Besides that though I honestly have no idea as to what you are referring to
spellContext.setCanceled was not working
still
i fixed it by stealing cross referencing with other mods
derringer helped me
There's heavy differences between latest release and latest indev about context canceling
Player data afaik
how much data can I store there before it becomes a problem?
how does a mana drain glyph sound?
very niche to mage vs mage pvp
mobs don't have mana, if you allow to use it against mobs to get a flat mana back it either remains useless or a basis to quick recharge exploits via discount
ofc it would also add some flat mana for each mob in a certain radius
its 4500 mana rn
high risk high reward
if there are a lot of mob its good
otherwise its not that good
you can always try and see, i'd guess it's hard to balance but you never know
i think each mob restoring the 2* the value of their health as mana is a good trade, considering the steep price
that would make mana drain very busted in boss fights
but have very poor performence elsewhere
so long as scaling health is not involved
Pretty sure it would be less good here. Single target, and you need 2250 HP minimum to be positive, a bit less for discount glyphs. You would need to fight multiple bosses at once.
Also: sensitive rune farm
You need to disallow from rune
@loud widget ars titan still in progress?
Just used the Ars codebase to fix Effortless Building, thanks Bailey for struggling on my behalf ๐
What was it?
ctx.get().enqueueWork(new Runnable() {
// Use anon - lambda causes classloading issues
this issue in the Packet handling for bi-directional packets
Was broken on dedicated server, and had no idea how to fix, opened up Ars to check how it's done and you even included a comment for me ๐
even the comment?
Yes
Damn, I never wanted to be grateful to botania
Java has weird class loading shenanigans
Quick, drink lots of alcohol and we'll delete the message
๐ป
why not
I am using code taken from EnderIO which took it from Mekanism which took from Botania
I have a completely irrational dislike of Vazkii mods because of Quark
Huh, does this issue always happen, or just for certain MC/Forge versions?
Because I most certainly have bi-directional packets O-o
@loud widget can i steal implement the aura glyph from your mod to a private mod for 1.20.1 ? its for personal use ofc
epic knights and mages added allthemodium support for ars armor
though I wish they added more mana regen/boost compared to base ars armor
looks epic btw
how can i fuse multiple chat component into one ?
What's the situation?
I'd guess either merging literal + translatable or two tranlatable
There is a way, but I don't remember where it's used
don't you just use append?
it didn't work ?
oj
h
i did it wrong
...
that's embarassing
thank you very much
is there any mob that is animated when inside containment jar ?
preferrably an ars mob or something that uses geckolib
decoy player model holds items when you hold them
Mobs inside jars are supposed to not animate iirc
Like,there is some sort of override to avoid weird glitches
But not too sure
okay cool
I see some code for allay animation thats why I wondered if I should do it or not
no worries. not that big of a deal
I am working on making the occultism spirit GUIs to work when used from containment jars but facing server/client issue
the cachedEntity of ContainmentJar only exists on server side and thus when doing getEntity() using the entity id on client side, I get a null entity
any idea how I could make this work ?
Recreate it on the client side
recreate what ?
the entity
you can make client side entities without issue, you can send the NBT with a packet and just make a new one
well, the nbt is probably already in the tile there anyway
that should work but I am still confused. Let me look through container code to see if it works
did you try using cachedEntity directly?
that is created by the renderer for youu
though the renderer also called getEntity, so not sure why it would be undefined for you other than that you are trying to use the entity ID instead of the entity itself for rendering
the entity ID requires it to be added to the level, the entity returned by the jar isnt in the level anymore, its just an instance of the object
right now only id is passed through Network hooks to open the gui. let me see if we can send other stuff
yesir, im currently working on the titan models. I've been struggling a bit with blockbench
sure ๐
im trying to turn this image into an actual minecraft mob but heres what i got so far ;-;
expectation
reality
tough
I suggest this experience to everyone wanting more bosses
Helps understanding why there are so few mods that manage to add them, lol
I noticed that MobJarTile#onDispel method retrieves entity from the tag and not the cachedEntity
so how does it save village stats and level when dispelled ?
does it even save it ? right now spirits directly write data into cachedEntity and not the tag and thus when dispelled, they get reset
im only now getting started with the animations and oh boi, is it hard to make them feel smooth
i'm having to basically restructure the entire model so that things move together and there is no slipping
math can be your friend in some cases
By using cos/sin on anim time
Usually idle or walking anims
yeah i think that can help too, but what i'm struggling with is with the animation itself (what moves to where and how)
i'm making the walking animation and i don't want to have their feet 'slipping' on the ground, so i basically have to make a structure where the feet is the root of everything and when the leg moves, the entire body moves without changing the position of the feet
or maybe im just over complicating things:)
You sure did at explaining it
Sounded more like you didn't nest the bones together and they all have to be synced manually
thats a rookie mistake, i would never do that (pain ;-;)
steal borrow code from other animators
it does????? how?? รง.รง
oh god, i just googled it
thank you very much for showing me the light
that will make animations muuuuuuch easier
Tis a sad reality. Wait, what about baked animation?
wait, so the animations that i make using ik would not work with geckolib?
Well now I'm curious. Time ta do some experimentation!
please let me know the results :v im also very interested
Inverse kinematics work like a charm.
What I think he meant was Geckolib doesn't support Procedurally generated animation. Which means let's say you have a character that has multiple arms or appendages that need to get up and off the floor as the character moves. You couldn't make those appendages find a suitable location with Geckolib.
Or at least I assume that's what he meant O-o
oooh nice, here i was already thinking how i would bake an animation make with ik
i always saw the question of "does GL support IK?" as no
but i have no idea how you made it in the first place
i barely know the basics of IK, not how it's implemented
if you generate the animation keyframes and then import them in blockbench then sure, it have no issues
you can generate the ik animation in blockbench directly
Thanks for taking the time to check out this video!
Please consider subscribing if you liked it and would like to see more tutorial videos in the future!
Blockbench Wiki: https://www.blockbench.net/wiki
Blockbench Discord: http://discord.blockbench.net/
Check out my twitter for more frequent updates on my work: https://twitter.com/MisterGriimm...
i have just spent 1 hour trying to find out how to lock the rotation of a bone when using ik
infinite pain ๐
what is a jabberwog. hidden mob or something ?
the frog
meant to be a mob able to control weather locally
but weather in mc is global so it's kinda not viable
so it kinda got delayed indef

how can i create perk uuids?
how do i get this
that should be you that define, no? isn't that just a string to uniquely identify the resource?
i guess you could use a uuid generator online
you can do that?
Tis a useful tool

this is a thunderous revelation
(see the pun?)
i botched the pun
sad
could've said i am shocked
;-;
Nahhhh. Doesn't have to be to on the nose for me, unless your intention is to make me groan. Then shocked would have been the better choice ^^
what are the chances that you use uuid generator and it already exists ?
pretty damn low
Thus, the probability to find a duplicate within 103 trillion version-4 UUIDs is one in a billion.
So if you do have the same UUID twice it's virtually guaranteed that someone fucked up and copy pasted
A Universally Unique Identifier (UUID) is a 128-bit label used for information in computer systems. The term Globally Unique Identifier (GUID) is also used, mostly in Microsoft systems.When generated according to the standard methods, UUIDs are, for practical purposes, unique. Their uniqueness does not depend on a central registration authority ...
I actually wanted to make a joke about not using the web generator to often to make sure that the world doesn't run out of UUIDs to quickly, but I think education is more important here ๐
is there such a thing as a "life steal" attribute procured by forge ?
or do i gotta steal borrow code to create it?
after 5+ hours of trying to make ik animations work with my model, i gave up ๐ I'll have to rotate things manually i guess
using ik the animation would always flicker when animating 4+ null_objects
tried everything that i could to fix it but it just doesn't want to work
the animation would always flicker when looping it (yes, all the first and last keyframes were all the same for every bone)
the only way to make it kind of work was baking the animation but then when you import it back into blockbench it breaks bc the baked rotations don't override the ik rotations
Womp, but hey, u tried!
does anyone know how to move a rideable entity? I want to be able to control it like what happens when you mount a horse, but my brain is too smooth to understand how they do it in the horse class
i already got working the part of being able to ride the entity, now i just need to find out how to move it
nvm, i think i figured it out, i can use the input key event from the event bus
does the spell crafting gui use "fake items" for glyphs?
really curious how the gui system works
(would have gone looked at code myself but it's 2 am for me. will go sleep )
It uses itemstacks now but in the past it was just sprites
Changed so the glyphs can be layered or animated
when animating with geckolib, should i have one animation controller for each animation, or should i have one controller that handles all of them? I'm looking for the best way to get smooth transitions between animations
i can see that when i go from animation 1 to animation 2, theres a smooth transition, but when i go back from animation 2 to animation 1 theres no transition
I'd say have multiple animation controllers if u have multiple systems or animations you wish to blend together. Use one if not
@radiant depot hey ๐ can i have permission to post on #addon-showcase for Ars Titans?
Try now
oh, it works, ty ๐
after some testing i found out that to get the best results, the perfect setup is to have one controller for each major part of the body. Let's say theres a running animation and an idle animation. The model has 3 major parts: arms, torso and legs. Having one controller for each part will make it so that it can transition between animation smoothly as there will never be an animation stopping, only transitioning (i found that when you stop an animation and start a new one, some times the animation controller skips the transitioning phase and goes directly to running which causes visual glitches. This might be due to the cache that they mentioned on the wiki but i don't know how to fix that :))
the downside is having to split every animation into a separate one for each major part
so a idle + walk for 3 major parts would have 3x2=6 animations in total
Imagine someone made a spider boss that could detect where it could place its feet, and it didn't jump when something was 1 block high
Factorio spidertron
if someone were to make an animation library that supports procedural animations
That'd be amazing
why is forge such a bugfest
i have been trying to play some good ol' modded mc
for THREE HOURS STRAIGHT
and i still can't get the fucking thing to launch
im loosing my fucking marbles
anyway if anyone has got tips on how to fix this particular error, i would be grateful
else im just going to keep trying things
How old is that?
Version
But anyway that error sounds like either a mod messed up ATs or something went wrong with Forge install
i disabled "everything"
and its only forge
now
and i still get this stupid error
i really feel like banging my head on a wall
Then likely something messed up with installing it
I don't think Java version errors would crash like that
ok
is there a way to dynamically scale an entity model? i heard it doesnt work with animations
do you have any idea how to use that ;-;? i want to make an entity that has dynamic size based on some conditions
their wiki doesnt seem to work
or maybe you know some mod that uses that library?
iirc ars scalaes uses it for the scaling glyphs*
ooh, ok then, ill go take a look on how that works, ty
npnp
you could adjust the bounding box size (there is a method in entity, check Weald walkers) and do a matrix scale on your render
the word matrix gives me shivers
Oh you're using geckolib so you can also probably wrap everything on a master bone and keep an anim controller that forces the size
Well no, it would be just push, scale, pop
can i get the bounding box from the renderer? i want the scale of the entity to be based on the size of another entity
like a cage that is the same size as the entity, so a small cage for chickens and a big one for something like the guardian or chimera
Not sure
But you can surely store values in the synced data
Remember the fact that not all variables of an entity are the same between server and client
yeah i gotta deal with that at some point ;-; just trying to avoid the headache for now
oh, another thing, is there a way to change the texture of an entity dynamically?
I don't remember how it is for vanilla, but geckolib has a get texture method
Like Starbuncles
Is there a way to use a translation key inside another translation key?
For example if I'm referencing an item, can I use the items translation key instead of duplicating the name
this.add("chat.ars_additions.lectern_remote.out_of_range", "Your Storage Lectern is not loaded");
Instead using something like this
this.add("chat.ars_additions.lectern_remote.out_of_range", "Your {{block.ars_nouveau.storage_lectern}} is not loaded");
I don't fully remember, but you could always use the %s and then pass as argument the translation
Yeah unfortunately that requires having to pass it in all the time which sucks
I forget, in 1.19.2 do I need to do anything special to make my items show up in Creative/JEI?
Oh it's in the item properties isn't it
how can i make my custom entity be attacked by monsters like the player is?
do i have to manually set the target of nearby monsters with a goal? (like a TauntNearbyMonstersGoal which would set the target of nearby monsters to be the custom entity)
now that neo is somewhat stable (only breaking changes would be the networking hotfix), should I expect porting to start anytime soon ? (I would be happy to help as well ofcourse)
Are Geckolib and Curios up to date? Or patchouli and terrablender?
Patchouli aside, they should
patchouli maintainer stepped down. the current situation is shaky from what I remember
@mossy hollow for ars additions why are you using architectury loom over FG ?
ForgeGradle is bad and I'll do anything to avoid it
Loom is such a nicer build system
I use archloom for any Forge project, including Ars Artifice and Ars Additions
I was even working on porting Ars to archloom
hehe why you hate FG ?
also have to you look at NG ? Its nicer to work with in comparison
FG feels really messy and I've had a lot of buggy experiences with it, additionally when I make non-addon mods I build them cross-platform so having Loom on everything makes life so much easier
Not checked NG at all, I was planning on just using Archloom with NeoForge
I never had any issues with the gradle plugins until yet ( I avoid touching gradle as much as possible :P )
NG is supposed to better and faster and a lot simplified and I am liking it so far
What's the best method for storing player data? I specifically need to store a number against a player and persist it, may need to expand this to a more complex data structure in the future
by complex I mean a hashmap of numbers to numbers per player
If it's just a number, simply using persistent data might be enough
For more complex, maybe capability territory?
Or saved data stuff, which get saved on the world and not on player
It's the amount of a source in a players ender source jar
If I end up doing 3 colour channel source jars then I'd need to store the channel too
If you use a 3 color channel then you go into world storage tho
I'm debating whether I'd even have public ender source jars, so currently the idea is they're all personal
It would be pretty much to have 3-16 combinations for each player
How was ender chest handling that?
Like Vanilla Enderchest? Or Ender Chest mod? If the latter then 
The ender chest mod has them public by default and turn personal by using a diamond on them
I'd still use world data with an extra list for "taken" frequencies
But that's design choices
remember to use data attachments when you go to neo eventually. they are super nice and easy to use :)
If it is an rgb channel one could convert it to int btw, idk why I was thinking on hex
Are they like cardinal components?
Yeah it'll be a HashMap<Integer, Integer> for each player
you can attach any arbitrary data to any object like player, entity and itemstacks
neo capability rework added them. they are simplied version of caps and meant to only store and retrieve data
Yeah that's exactly how cardinal components works, I hope they use that for inspiration because it's a really nice system
while caps are reserved for methods and functions like fluids
is that from fabric? because we got a lot of things from them
Cardinal Components are what's used for handling Origins mods whole power system
It's a third party API in fabric ecosystem
like registry attachments recently. in neo they are called Data Maps
neo is super easy to use and understand lol
kinda like this but alot more powerful
Interesting, my first impression was the opposite, that cca was more powerful
everything now is attachment. even extra item nbt
basically any information neo adds to any object is an attachment
The data attachment system allows mods to attach and store additional data on block entities, chunks, entities, and item stacks.
20.3 and above if I remember
public static int pack(DyeColor first, DyeColor second, DyeColor third) {
String hex = String.format("%x%x%x", first.getId(), second.getId(), third.getId());
return Integer.parseInt(hex, 16);
}
public static Triple<DyeColor, DyeColor, DyeColor> unpack(Integer dyeCombo) {
String hex = String.format("%x", dyeCombo);
int first = Integer.parseInt(hex.substring(0, 1), 10);
int second = Integer.parseInt(hex.substring(1, 2), 10);
int third = Integer.parseInt(hex.substring(2, 3), 10);
return Triple.of(DyeColor.byId(first), DyeColor.byId(second), DyeColor.byId(third));
}
can anyone think of a better way to do this
Not a huge fan of the approach
bit manipulation
I have no idea how to do bit manipulation, that's too low level for me lmao
whats the range of dye color ?
so 0xFFF format ?
ye
first = (code & rMask) >> 8;
second = (code & gMask) >> 4;
third = (code & bMask);
that should would. I modified this from how rgb is stored in hex
to get code
code = 0;
code += (int) (first * Math.pow(2, 8));
code += (int) (second * Math.pow(2, 4));
code += (int) (third * Math.pow(2,0));```
try this. I am not 100% sure but it should work
Yeah it works
good guess
I hate working with new things, my first block entity and I crash the game as soon as I place it down
unbound renderer i'd guess?
Is it possible to get a link toward the beginning of this topic please ?
I fear the scrolling
From the pins?
The what ?
The pinned messages
some of those are pretty much from the beginning
specifically this one: #1019655534900678737 message
Perfect thank you
Beware, for your journey shall be long and arduous.
For as much as you gain, so to shall you lose.
You have been warned. :v
Joking, of course. Just a fool spouting nonsense, haha!
@radiant depot Are you planning on making focus spellbooks? Or is that something I can look into?
The test on the binder is a testing ground for threads on books in base ars
Does that also include foci?
The vanilla ones ye