Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Botania expansion #420

Draft
wants to merge 39 commits into
base: master
Choose a base branch
from
Draft

Conversation

TabakaSIM
Copy link

New 7 flower!

Screenshot_20240928_140239

  • Campanimia [generating flower] - consumes different aspects from attached crucibles

Generated mana is based on amount of different aspects
Catches:

  • natural flux generated by cauldrons (don't throw all items at once or spaghetti noddle will appear!)
  • each aspect will count only once (2 cauldron with terra aspect, makes terra aspect count only once)
  • generates up to 297066 mana/s
    Screenshot_20240928_142321
  • Nuclianthus [generating flower] - botanical reactor

Generates mana using nuclear fuel, can overheat and explode
Amount of mana generated is based on heat and efficiency of fuel, duration of fuel as in fuel description
Screenshot_20240928_141537

  • Antirrhift [functional flower] - flower that speeds up mana transportation for the cost of 20% tax

  • Amuileria kaerunea [functional flower] - crafting with lightning

  • Echinacenko [functional flower] - provides nutritients to player

  • Jikaneesia [functional flower] - extends the effect of time in a bottle
    Screenshot_20240928_143722

  • Rokku Eryngium [functional flower] - flower that cuts astral rock crystals

Refreshed Botania questbook

Screenshot_20240928_145638

Technical info:

  • All flowers were tested only single player
  • I strongly recommend using /gamerule logAdminCommands false to prevent log spam when using Nuclianthus (as you can see there was one reverted change - if you want to keep commands log i suggest using the version that prevents console spam)
  • I tried to create flowers configurable, so it should be easy to nerf/buff them if needed
  • I wanted to create JEI category for some crafting, but i don't quite understand how it works :(

now spawns particle only when there is overheat
@TabakaSIM
Copy link
Author

I almost forgot: i got one flower that is pre made, but it wasn't quite needed. I can add it to modpack but keep it commented (so it won't impact gameplay for now)

server.commandManager.executeCommandSilent(server, '/summon minecraft:lightning_bolt '~pos.x~' '~pos.y~' '~pos.z );
subtile.setCustomData({charge: 0});
} else{
server.commandManager.executeCommandSilent(server, "/particle magicCrit "~pos.x~" "~(1.2f + pos.y)~" "~pos.z~" .4 .4 .4 0 5");
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

try to replace commands with native access:

图片

you can get an instance of World via .native, for example world.native where world is IWorld from ZenScript

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just be careful with spawnParticle since it could be clientonly call.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, spawnParticle was client side only

botania.page.campanimia0=§1坎帕尼米亚§r 是一种喜欢吸收 thaumaturge 提炼器中剩余精华的花。留下的精华种类越多,它生成的 §4魔力§r 就越多。<br>请注意,提炼器必须正常工作——需要同时提供热量和水。
botania.page.campanimia1=&o别喝得太醉哦&r

tile.botania:flower.nuclianthus.name=纽克莲花
Copy link

@ZZZank ZZZank Sep 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
tile.botania:flower.nuclianthus.name=纽克莲花
tile.botania:flower.nuclianthus.name=核辐莲

All zh_cn localization for flower names seem be using transliteration and barely contains useful information. I guess this is bacause these names are artificial. Please provide what these names are made up of, or it might confuse translators a lot.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here are the names of flowers name reference:
Amuileria kaerunea (Aquilegia caerulea + Kaminari[thunder])
Antirrhift (Antirrhinum + Shift)
Echinacenko (Echinacea + kenko[health])
Jikanacea (Echinacea + jikan[time])
Rokku Eryngium (Eryngium + Rokku)
Campanimia (Campanula + alkimia)
Nuclianthus (Helianthus + nuclear)

Comment on lines +35 to +37
'item.nuclearcraft.fuel_thorium.tbu_ox': [14400, 40, 125], // TBU-OX
'item.nuclearcraft.fuel_thorium.tbu_ni': [18000, 32, 125], // TBU-NI
'item.nuclearcraft.fuel_thorium.tbu_za': [11520, 50, 125], // TBU-ZA
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having this type of pedefined values will make a "correcting bomb", when I will need to remember every place in code to correct values if NC configs is changed.
It will be even worst since NC is going to be updated soon, so configuration and default values may change.
Please, check out if NC allowing to have native getters. Maybe you could just call a function like native.nuclearcraft.fuels.getEfficiency() or something like that.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll try to check it

return aspects;
}

function drinkEssentia(world as IWorld, cruciblesPosList as IBlockPos[]) as void {
Copy link
Owner

@Krutoy242 Krutoy242 Sep 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please make this tests:

  1. Place and configure 20 flowers of each added type
  2. Automate them to work continiously
  3. Create Spark Profile
  4. Send profile to comment here

I want to see if all flower functions are performant enough, because some functions sounds kinda sus.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://spark.lucko.me/Yy75xxy6f6

I'm not sure if this is what was needed

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this is what i need.
Profile shows that Antirrhift is causing small lag. Its notable, but not terrible. If you can optimize it - would be good.
As you can see on the call stack, block nbt get/set is what causing most of CPU strain. Possible solution would be delay updates OR some high-skill native manipulations, like directly changing TileEntity class properties, omitting working with NBT.

image

Copy link
Owner

@Krutoy242 Krutoy242 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please merge origit/HEAD into the PR and press Resolve Conversation every time you applied change request, so i could see only comments you still working on.

Comment on lines +20 to +24
static recipesLigthningFlower as IItemStack[string] = {
'item.appliedenergistics2.material.certus_quartz_crystal': <item:appliedenergistics2:material:1>,
'item.appliedenergistics2.material.purified_certus_quartz_crystal': <item:appliedenergistics2:material:1>,
'item.appliedenergistics2.material.certus_quartz_crystal_charged': <item:appliedenergistics2:material:1>,
} as IItemStack[string];
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add this recipes at least into crafting hints by scripts.jei.crafting_hints.add1to1().
I dont know how to do that, but i think you need some kind of a trick to have recipe list available from both places - #loader contenttweaker and default loader. Ask me if you will not be able to find solution.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as ZenUtils LateSetCoTFunction, RandomTweaker custom botania flowers also support it.
<cotSubTile:name>

Comment on lines 473 to 481
mods.botania.Apothecary.addRecipe(<botania:specialflower>.withTag({type: "jikanacea"}), [
<astralsorcery:itemtunedcelestialcrystal>.withTag({astralsorcery: {constellationName: "astralsorcery.constellation.horologium", crystalProperties: {collectiveCapability: 100, size: 900, fract: 0, purity: 100}}}),
<botania:rune:14>,
<botania:rune:9>,
<quark:rune:2>,
<quark:rune:4>,
<quark:rune:4>,
<thaumicaugmentation:material:5>,
]);
Copy link
Owner

@Krutoy242 Krutoy242 Sep 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont like this recipe.

  1. Horologrium is too grindy and boring ingredient to make, especially considering it require lot of boring processes like waiting 28 days. Replace this ingredient to something common and widely used. It may be related to AS as well
  2. I dont know, maybe its my personal feeling, but i have picking exact color for most of botania recipe, like picking petal colors. Its sounds repetative. I would ask here to replace exact colored runes to wildcarded ones, accepting any rune color. This is related to other recipes as well. But you can insist to keep colored runes, i dont mind.

image

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1.Replaced crystal with resonating gem
2. Personally i think that crafting recipe or runes is awesome but never used in actual progress. We even have rainbow rune that is combination of all 8 craftable runes, I just feel it's kinda wasted crafting ingredient. I'm willing to replace all runes with petal to match classic botania petals

scripts/mods/botania.zs Outdated Show resolved Hide resolved
@Krutoy242 Krutoy242 marked this pull request as draft October 2, 2024 07:30
@Krutoy242
Copy link
Owner

Magiculture Integrations mod adding new flower, maybe this would be interesting for you
image

imageimageimageimage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants