-
Posts
875 -
Joined
-
Last visited
-
Days Won
10
Content Type
Profiles
Forums
Blogs
News
Store
Everything posted by Teh Pizza Lady
-
Surface blocks are entirely different and separate from the surface deposits. The density search will ignore surface deposits, which are guaranteed to *also* generate surface blocks, as found here: public abstract class DiscDepositGenerator : DepositGeneratorBase { [JsonProperty] public float GenSurfaceBlockChance = 1f; public override void GenDeposit(IBlockAccessor blockAccessor, IServerChunk[] chunks, int chunkX, int chunkZ, BlockPos depoCenterPos, ref Dictionary<BlockPos, DepositVariant> subDepositsToPlace) { ... bool shouldGenSurfaceDeposit = DepositRand.NextFloat() <= GenSurfaceBlockChance && SurfaceBlock != null; ... } } DepositRand.NextFloat() generates a value between 0f and 1f... meaning it will always generate surface blocks for surface ores. Thus if you find surface deposits for lead, propicking will fail on the density search.
-
So... this is going to be a long post. My apologies to those with short attention spans. Surface deposits are simply NOT propickable. This is not determined by the JSON but rather by the in-game ore generator. 1. The propick only checks "in-block" deposits. These are separate from surface deposits. The propicking system uses DepositVarant.GetPropickReading() defined as so: public override void GetPropickReading(BlockPos pos, int oreDist, int[] blockColumn, out double ppt, out double totalFactor) { // Calls the generator to compute propick readings GeneratorInst.GetPropickReading(pos, oreDist, blockColumn, out ppt, out totalFactor); } For the DiscDepositGenerator (used by both galena and halite), this is implemented as so: public override void GetPropickReading(BlockPos pos, int oreDist, int[] blockColumn, out double ppt, out double totalFactor) { int qchunkblocks = Api.World.BlockAccessor.GetTerrainMapheightAt(pos) * 32 * 32; double oreMapFactor = (double)(oreDist & 0xFF) / 255.0; double rockFactor = oreBearingBlockQuantityRelative(pos, variant.Code, blockColumn); totalFactor = oreMapFactor * rockFactor; double relq = totalFactor * absAvgQuantity / (double)qchunkblocks; ppt = relq * 1000.0; } Here the rockFactor is calculated only from ore-bearing blocks in `placeBlockByInBlockId`. In other words. Surface deposits are skipped. I'll explain why. private double oreBearingBlockQuantityRelative(BlockPos pos, string oreCode, int[] blockColumn) { int[] blocks = GetBearingBlocks(); // returns placeBlockByInBlockId.Keys ... } public int[] GetBearingBlocks() { return placeBlockByInBlockId.Keys.ToArray(); } The propick ONLY sees blocks stored in this dictionary in the code. SURFACE DEPOSITS ARE HANDLED DIFFERENTLY. 2. Surface ore blocks are NEVER added to `placeBlockByInBlockId`, but rather, go into `surfaceBlockByInBlockId`: if (SurfaceBlock != null) { // This is used only for world generation surfaceBlockByInBlockId[block.BlockId] = SurfaceBlock.Resolve(variant.fromFile, Api, block, key, value); } This dictionary here is NEVER checked by GetPropickReading() and in fact, is never mentioned again in the code that I looked at for this deep dive...so surface deposits are NEVER included in the propick readings. 3. The JSON does not control propickability. It only defines the ore distribution, which ore generator to use, and what blocks to place: [ { code: "galena", ... generator: "disc-followsurface", attributes: { inblock: { code: "rock-*", name: "rock", allowedVariants: ["claystone", "sandstone", "shale", "chalk", "limestone", "chert", "conglomerate"] }, ... surfaceBlock: {code: "looseores-galena-{rock}-free" }, ... }, ... } ] Bottom line: Surface deposits exist for decoration/worldgen only. The propick system is strictly tied to subsurface, aka deep ore blocks To make surface deposits propickable, the generator code itself would need to ALSO include surfaceBlockByInBlockID in GetBearingBlocks(), which it does not. Halite is not propickable because the way it is defined in the JSON means it never gets added to the placeBlockByInBlockID list for the propick search, despite being a subsurface rock. It's very similar to how substrata also do not show up in the propick search because they are rocks, not ores. I hope this helps everyone and settles the argument once and for all.
-
Official Expanded Stomach/Hungry While Injured mods idea thread.
Teh Pizza Lady replied to Teh Pizza Lady's topic in WIP Mods
it actually does... a default of 40% movement reduction speed at max fat level. We found that any lower induced a "slo-mo" effect which made the game janky in a lot of ways. -
I could pull the whole "drain nutrition before health" bit into Expanded Stomach or at least into a companion mod. I'll add it to my roadmap for sure with an option to toggle it off in case another mod handles it, too.
-
given how much RNG is already in the game I don't think it would be a big deal to have a season start/end vary by a few days. Bearing in mind that the standard month length is...10 days by default?
-
wrong thread XD XD
-
Just feels... inadequate compared to modpacks that involve TFC+
Teh Pizza Lady replied to cAshewTheAce's topic in Discussion
Probably. now I have a bunch of Subaru jokes stuck in my head... What do you call a Subaru that's under water? Scubaru What do you call a Subaru that comes with a vacuum? Subaroomba -
Not to be the one who goes "Well ACKCHSHUALLY", but that was a separate mod called Butterfly Mania.
-
Just feels... inadequate compared to modpacks that involve TFC+
Teh Pizza Lady replied to cAshewTheAce's topic in Discussion
Subaru-ba-boo, where are you? We got some work to do now. Subaru-ba-boo, where are you? We need some help from you now. -
"Should Have Seen That Coming" -- Get shot point blank in the face by a hunter while not in combat.
-
rumor has it Saraty is responsible for all the butterflies in the game. Tyron added them because she liked collecting them.
-
Just feels... inadequate compared to modpacks that involve TFC+
Teh Pizza Lady replied to cAshewTheAce's topic in Discussion
Just use Wolf Bait. It's close enough. -
Just feels... inadequate compared to modpacks that involve TFC+
Teh Pizza Lady replied to cAshewTheAce's topic in Discussion
could be worse... could be an Altima that doesn't have a scratch on it yet. -
similarly, dispatching a bell (not in any of the story locations) should give you "No Bell Prize"
-
I see achievements in other games as a sort of metric of "Oh the player made it this far" which I guess is okay, but it's also kind of crazy when you get an achievement just for making your first flint knife and then look and see that only 75% of the people who own the game have that achievement like... okay... so 25% of the people who have this game just haven't even played it??? Those kinds of metrics are lame. I want to see how many people have managed to do something fun, silly, or down right impossible in the game... something truly worthy of bragging rights. Something I can tell my friends with a stupid grin on my face, "Look at what I did. XD" I do agree with the full set of metal armor one and the bronze one... but only if it's a full set of gold plate armor... Achievements should be "Life of Luxury" -- Craft a full set of gold plate armor. "Who Needs Iron Anyway?" -- Cast an ingot of every type of bronze.
-
"Impeccable Aim" -- throw a rock; Get hit by said rock "Would I Was Told" -- hit yourself with your own arrow while eating an apple.
-
I've... never done this before. Why are you all staring at me??
-
There is a tar mod... I don't know if it's updated and working properly however. https://mods.vintagestory.at/tarmod
-
"You gonna eat that?" when you fully consume a food item that someone else made
-
In all honesty, this sounds like a very specific issue that should be handled on a server-by-server basis. No need to force everyone in the game to follow this when most people are probably respectful of each other's space, even if they're gone for a long while before eventually returning. Imagine if you were forced to be away for a while and came back to a server you enjoyed playing on, only to find that you joined the game in someone else's house where yours used to be. All your hard work ... gone. Or imagine you went on vacation and were gone for three weeks and someone had gotten his friends to veto your landownership while you were away and they ganged up and killed you in-game until your respawns were all used up and you went back to the world spawn point. What you're suggesting is a powerful weapon that can and will be used against you given the chance.
-
"Wolf Bait" when you die to your first wolf "Bear Snack" when you die to your first bear "Picky Eater" when you starve to death "You squeezed what from where?" when you milk your first sheep or goat