Skip to content

Latest commit

 

History

History
561 lines (409 loc) · 32.8 KB

2021-03-26.md

File metadata and controls

561 lines (409 loc) · 32.8 KB

< 2021-03-26 >

2,921,111 events, 1,467,280 push events, 2,292,705 commit messages, 177,728,369 characters

Friday 2021-03-26 00:04:47 by ms-mirror-bot

[MIRROR] Adds a plumbing layer manifold (#162)

  • Adds a plumbing layer manifold (#57494)

Adds a multilayer plumbing manifold, I also murdered the multilayer duct

You can now alt-click the plumbing RCD to change the layer it prints. I made a whole thing where right clicking changed the settings and you could use that to change machinery aswell. I even did that with the plunger, it was absolutely beautiful. Anyway that drained the life out of me because apparently there's no attack_obj_secondary and afterattack_secondary ALSO called attack_obj (left click). I just hate whoever made it with intensity

Plumbing now uses three layers. They should be easier to navigate. I tried to make layer connecting the same as cross-color connecting, but that would take more of my soul then there is to take

  • Adds a plumbing layer manifold

Co-authored-by: Time-Green [email protected]


Friday 2021-03-26 00:04:56 by ms-mirror-bot

[MIRROR] Makes stations more airtight (#163)

  • Makes stations more airtight (#57535)

I've gone through delta, meta, and icebox and added some choice windoors, changed some areas around, added some more doors, and changed some other miscellaneous things.

I'll list the full changes in drop downs, for both our sakes

Delta:

Splits the central hallway into fore and aft central hallways

Adds the spaces that jut out of medbay and sci into the central hallway, rather then having them be a part of medbay and sci

Adds medbay access locked windoors to the back desk of the medbay reception area

Adds airlocks to both the upper and lower parts of the main hallway

Meta:

Gives the storage wing another set of firelocks, and two fire alarms. It didn't have any alarms in the first place, so hopefully this helps things

Adds the spaces that jut out of medbay and sci into the central hallway, rather then having them be a part of medbay and sci

Replaces a small bit of the science area with nanite lab, to prevent a breach near xenobio causing fire alarms at the front of sci

Adds a windoor in front of the ORM to block air

Adds a wall behind a smart fridge in chemistry

Icebox:

Added airlocks between arrivals and the port hallway, and the escape hallway and the starboard hallway

Added a windoor between the kitchen and the bar

Why It's Good For The Game

Cuts delta's main hallway in half, with the goal of reducing fire alarm strain. Some thoughts on this would be nice, I don't want to make everything else that uses areas worse just because fire alarms are dumb, and I'm worried that's what I've ended up doing here.

I've also added the portions of medbay/sci that jut out into the main hallway into the main hallway, I think? I could make these into lobby areas, but I'm not sure if that's appropriate or not.

Adds a few windoors and airlocks to better section off portions of the station, this should reduce the amount of mass gas spreading that can occur.

My goal here is to reduce the amount of uninteresting gas movement and make firelocks less hellish when there's a breach

  • Makes stations more airtight

Co-authored-by: LemonInTheDark [email protected]


Friday 2021-03-26 00:48:21 by Marcus Puckett

Fuck it we're going with shell scripts

Because Docker on Linux is not the same as Docker on anything else I was running into a lot of issues with file permissions, specifically around the desire to expose the Postgres server's log files back out to the host to allow for some nice fail2ban shenanigans. After some pain (see commit history) I decided that it would just be easier to just use the ./init-script.sh to spin up the docker containers, then run a quick chown with the in container postgres uid:gid, which is 70:70 and appears to be static? Hopefully? Anyway it works so what ever.

I also stopped using docker volumes and am just copying the necessary config files in via the dockerfile now as God intended.


Friday 2021-03-26 01:04:23 by Cinnamon-BonBon

FUCK YOUR DIRT AND FUCK YOU TOO. Also, adds a bathroom to the Head Scribe's office because eVeRy OtHeR hEAd hAs oNe


Friday 2021-03-26 02:13:37 by Jean-Paul R. Soucy

New data: 2021-03-25. See data notes.

Revise historical data: cases (MB, NB, ON, SK); mortality (MB).

Toronto's case number for today is inflated as it includes "approximately 260 cases from March 18 - March 24 that were not previously reported" due to technical issues

Note regarding deaths added in QC today: “4 new deaths, for a total of 10,630 deaths: 1 death in the last 24 hours, 3 deaths between March 18 and March 23.” We report deaths such that our cumulative regional totals match today’s values. This sometimes results in extra deaths with today’s date when older deaths are removed.

Recent changes:

2021-01-27: Due to the limit on file sizes in GitHub, we implemented some changes to the datasets today, mostly impacting individual-level data (cases and mortality). Changes below:

  1. Individual-level data (cases.csv and mortality.csv) have been moved to a new directory in the root directory entitled “individual_level”. These files have been split by calendar year and named as follows: cases_2020.csv, cases_2021.csv, mortality_2020.csv, mortality_2021.csv. The directories “other/cases_extra” and “other/mortality_extra” have been moved into the “individual_level” directory.
  2. Redundant datasets have been removed from the root directory. These files include: recovered_cumulative.csv, testing_cumulative.csv, vaccine_administration_cumulative.csv, vaccine_distribution_cumulative.csv, vaccine_completion_cumulative.csv. All of these datasets are currently available as time series in the directory “timeseries_prov”.
  3. The file codebook.csv has been moved to the directory “other”.

We appreciate your patience and hope these changes cause minimal disruption. We do not anticipate making any other breaking changes to the datasets in the near future. If you have any further questions, please open an issue on GitHub or reach out to us by email at ccodwg [at] gmail [dot] com. Thank you for using the COVID-19 Canada Open Data Working Group datasets.

  • 2021-01-24: The columns "additional_info" and "additional_source" in cases.csv and mortality.csv have been abbreviated similar to "case_source" and "death_source". See note in README.md from 2021-11-27 and 2021-01-08.

Vaccine datasets:

  • 2021-01-19: Fully vaccinated data have been added (vaccine_completion_cumulative.csv, timeseries_prov/vaccine_completion_timeseries_prov.csv, timeseries_canada/vaccine_completion_timeseries_canada.csv). Note that this value is not currently reported by all provinces (some provinces have all 0s).
  • 2021-01-11: Our Ontario vaccine dataset has changed. Previously, we used two datasets: the MoH Daily Situation Report (https://www.oha.com/news/updates-on-the-novel-coronavirus), which is released weekdays in the evenings, and the “COVID-19 Vaccine Data in Ontario” dataset (https://data.ontario.ca/dataset/covid-19-vaccine-data-in-ontario), which is released every day in the mornings. Because the Daily Situation Report is released later in the day, it has more up-to-date numbers. However, since it is not available on weekends, this leads to an artificial “dip” in numbers on Saturday and “jump” on Monday due to the transition between data sources. We will now exclusively use the daily “COVID-19 Vaccine Data in Ontario” dataset. Although our numbers will be slightly less timely, the daily values will be consistent. We have replaced our historical dataset with “COVID-19 Vaccine Data in Ontario” as far back as they are available.
  • 2020-12-17: Vaccination data have been added as time series in timeseries_prov and timeseries_hr.
  • 2020-12-15: We have added two vaccine datasets to the repository, vaccine_administration_cumulative.csv and vaccine_distribution_cumulative.csv. These data should be considered preliminary and are subject to change and revision. The format of these new datasets may also change at any time as the data situation evolves.

https://www.quebec.ca/en/health/health-issues/a-z/2019-coronavirus/situation-coronavirus-in-quebec/#c47900

Note about SK data: As of 2020-12-14, we are providing a daily version of the official SK dataset that is compatible with the rest of our dataset in the folder official_datasets/sk. See below for information about our regular updates.

SK transitioned to reporting according to a new, expanded set of health regions on 2020-09-14. Unfortunately, the new health regions do not correspond exactly to the old health regions. Additionally, the provided case time series using the new boundaries do not exist for dates earlier than August 4, making providing a time series using the new boundaries impossible.

For now, we are adding new cases according to the list of new cases given in the “highlights” section of the SK government website (https://dashboard.saskatchewan.ca/health-wellness/covid-19/cases). These new cases are roughly grouped according to the old boundaries. However, health region totals were redistributed when the new boundaries were instituted on 2020-09-14, so while our daily case numbers match the numbers given in this section, our cumulative totals do not. We have reached out to the SK government to determine how this issue can be resolved. We will rectify our SK health region time series as soon it becomes possible to do so.


Friday 2021-03-26 02:22:14 by Marisa Kirisame

Boy I sure love gross hacks to work around scope fuckery.


Friday 2021-03-26 03:02:19 by Cloud

Many class fixes, changes & improvements (#568)

  • Elementalist's Blizzard "remembers" the spell/ability power from when it was cast. Mage's Thunder Step's second damage & the Elementalist's ice spirit's pulses are now also consistent in this regard
  • Multiple custom damage instances received in the same tick or the one after will no longer always reset iframes. Thunder Step's second attack had its damage also apply by "fluke" this way, so the second attack now bypasses iframes to keep behaviour similar
  • Fixed custom fire tick application & taunt reducing iframes' last damage to almost 0
  • Magma Shield & Frost Nova now bypass iframes
  • Updated Mage's Magma Shield's description for consistency
  • Updated Mage's Frost Nova's description for consistency. Also fixed inaccuracies regarding slowness reduction for elites/bosses & left-click requirements
  • Selecting any Mage skill that uses the swap key as part of its trigger will now cancel all swapping as long as you are holding a wand - Thunder Step, Elementalist's Starfall, Arcanist's Spatial Shatter
  • Bosses can no longer be stunned by Thunder Step
  • Thunder Step's particles now account for varying enemy heights
  • Thunder Step no longer forces your look direction upwards when you'd teleport towards the ground. It is highly recommended that you jump to aim it well, but it is not a hard requirement
  • Thunder Step's skill description has been further updated for consistency. It now also mentions its swap cancellation
  • Updated Elemental Spirits' description to hint at the ice spirit affecting movement
  • Elemental Spirits now truly bypasses iframes instead of just resetting them
  • Berserker's Meteor Slam no longer requires you to be sneaking to trigger Jump Boost
  • Selecting Meteor Slam now cancels all swapping
  • Fixed manually triggering Meteor Slam by hitting an enemy not applying Ability Power when adding on to that enemy's received damage. It is now damaged by the slam's AoE just like other nearby enemies
  • Improved cancellation mechanisms for Meteor Slam, similar to skills like Elemental Spirits & its particles
  • Simplified Meteor Slam's flame particle randomisation & cuts those particles in half down from 60
  • Changed the way Meteor Slam calculates fall distance. It will now find your full fall distance instead of handling a vanilla value from the tick before you landed
  • Updated Meteor Slam's description for consistency. Also fixed inaccuracies regarding sword/axe attack requirements & added details on block thresholds. It now mentions its swap cancellation
  • Updated Starfall's skill description for consistency. It now also mentions its swap cancellation & has added detail on a little of its many intricacies
  • Updated Spatial Shatter's skill description for consistency. It now also mentions its swap cancellation & has added detail
  • Fixed Arcanist's Astral Omen having wrong durations for its slowness & bonus damage debuff. It now follows its description instead of sharing the 10s duration of omen stacks decaying
  • Astral Omen's damage now bypasses iframes
  • Fixed many related bugs with omen effect count & level, causing issues with things like proper clearing, decaying & particles
  • Updated Astral Omen's skill description for consistency. It now also has added detail
  • Fixed Blizzard's damage causing iframe last damage to accumulate higher and higher, which would wrongly block other damage. It now bypasses iframes properly
  • Updated Blizzard's extinguishing to be consistent with Frost Nova's
  • Updated Blizzard's skill description for consistency. It now also mentions how it will cast instead of Magma Shield while looking up & has added detail
  • Slightly tweaked Blizzard/Magma Shield's look up angle allowance & updated Cleric's Cleansing Rain to match

Friday 2021-03-26 03:39:51 by Mohsin Kaleem

(misc): Cleanup + Refactor

Overall this commit has vastly reduced the amount of stuff going on at emacs startup. I've gone from about 700/800 features being included in features to just around 465 (including autoloads).

It's still far higher than it has any need to be but a good improvement all the same.

Changes include:

  • Amended bin/tangle so it tries to avoid eln-cache being made in my user home directory... it doesn't work but it's a slight improvement.
  • Disable line-numbers in init.org. Apparently it improves performance.
  • Move eglot-maybe-connect+ from eglot into my outer base configuration. Technically it doesn't work with lsp-mode yet but it's fine for eglot.
  • Reconfigure default reccomended modules. Included removing a few un-necessary ones and switching from ivy to selectrum propper.
  • Removed ruby-robe... I've never used it and solargraph seems better because it has a consistent LSP backed interface.
  • Switched a bunch of defvars into defconst. Hopefully the bytecompiler can inline them or otherwise get a performance boost.
  • Disable menu-bar-mode and tool-bar-mode directly from early-init.el
  • Update titles for all headings to make them easier to jump to with consult-outline. From now on try to keep headings labelled in a way where you can understand their meaning without knowing the value of previous or leading headings.
  • Reduce a bunch of compilation warnings related to unused parameters or free variable declarations.
  • Decouple goto-home-buffer command from dashboard.
  • Update lisp-indent-function from upstream doom! emacs.
  • Remove over-reliance on :defer t on use-package and instead make :defer t the default format for use-package. Now you must specify :demand t when you don't want things deferred.
  • Prevent automatic requiring of org-mode at startup by deferring org-link-minor-mode till after emacs has started.
  • Defer loading of org-roam-mode. It's now enabled after the org-roam package is loaded... but can probably be autoloaded after a few second idle delay.
  • Move hydras back from hydras.org into init.org. I initially moved them out due to performance concerns or what not but seeing as I can't use (package-yes! ...) clauses in hydras.org I've decided to bring them back... hopefully for the last time.
  • Removed the open-junk-file package. I've literally never used it and currently have my own junk-file setup courtesy of my shell.
  • Replaced custom ibuffer-icon setup with [[https://github.com/seagle0128/all-the-icons-ibuffer][all-the-icons-ibuffer]].
  • Added an initial configuration for (GNU) Info mode.
  • Added a command to move up a directory with find-file and selectrum.
  • Replaced custom xref implementation in consult with official one.
  • Moved goto-error and goto-compile-error from error map to jump map.
  • Added a command to toggle the order of eldoc-documentation-functions in eglot managed buffers. Now you can priorities errors over documentation.
  • Removed buggy flycheck configuration for eglot. Lets face it, it's never gonna happen.
  • Removed jupyter-notebook related configs. God help me if I should ever need them.
  • Replaced evil-magit with custom fork inside init.org. The upstream maintainer seems to have left ([[https://github.com/emacs-evil/evil-magit/issues/87][#87]]) evil magit behind, so rather than installing all of evil-collection I've copy-pasted the bare minimum needed to get a usable magit experience.
  • Added git-forge configuration... still seems kinda buggy but it's usable.
  • Adapted skeletor-expand-project+ to be more flexible with project directories and automatic detection of project names.
  • Removed the default skeletor project types cause I've like never used them.
  • Added the modern-cpp-font-lock package to the c/cpp module.
  • Adapted bibtex-insert-pdftools-link+ to allow replacing the active region when active with bibtex selection.
  • Update avy faces in theme to have better contrast.
  • Update lockfile versions for straight.

Friday 2021-03-26 04:50:37 by Peter Zijlstra

sched/core: Fix ttwu() race

Paul reported rcutorture occasionally hitting a NULL deref:

sched_ttwu_pending() ttwu_do_wakeup() check_preempt_curr() := check_preempt_wakeup() find_matching_se() is_same_group() if (se->cfs_rq == pse->cfs_rq) <-- BOOM

Debugging showed that this only appears to happen when we take the new code-path from commit:

2ebb17717550 ("sched/core: Offload wakee task activation if it the wakee is descheduling")

and only when @cpu == smp_processor_id(). Something which should not be possible, because p->on_cpu can only be true for remote tasks. Similarly, without the new code-path from commit:

c6e7bd7afaeb ("sched/core: Optimize ttwu() spinning on p->on_cpu")

this would've unconditionally hit:

smp_cond_load_acquire(&p->on_cpu, !VAL);

and if: 'cpu == smp_processor_id() && p->on_cpu' is possible, this would result in an instant live-lock (with IRQs disabled), something that hasn't been reported.

The NULL deref can be explained however if the task_cpu(p) load at the beginning of try_to_wake_up() returns an old value, and this old value happens to be smp_processor_id(). Further assume that the p->on_cpu load accurately returns 1, it really is still running, just not here.

Then, when we enqueue the task locally, we can crash in exactly the observed manner because p->se.cfs_rq != rq->cfs_rq, because p's cfs_rq is from the wrong CPU, therefore we'll iterate into the non-existant parents and NULL deref.

The closest semi-plausible scenario I've managed to contrive is somewhat elaborate (then again, actual reproduction takes many CPU hours of rcutorture, so it can't be anything obvious):

				X->cpu = 1
				rq(1)->curr = X

CPU0				CPU1				CPU2

				// switch away from X
				LOCK rq(1)->lock
				smp_mb__after_spinlock
				dequeue_task(X)
				  X->on_rq = 9
				switch_to(Z)
				  X->on_cpu = 0
				UNLOCK rq(1)->lock

								// migrate X to cpu 0
								LOCK rq(1)->lock
								dequeue_task(X)
								set_task_cpu(X, 0)
								  X->cpu = 0
								UNLOCK rq(1)->lock

								LOCK rq(0)->lock
								enqueue_task(X)
								  X->on_rq = 1
								UNLOCK rq(0)->lock

// switch to X
LOCK rq(0)->lock
smp_mb__after_spinlock
switch_to(X)
  X->on_cpu = 1
UNLOCK rq(0)->lock

// X goes sleep
X->state = TASK_UNINTERRUPTIBLE
smp_mb();			// wake X
				ttwu()
				  LOCK X->pi_lock
				  smp_mb__after_spinlock

				  if (p->state)

				  cpu = X->cpu; // =? 1

				  smp_rmb()

// X calls schedule()
LOCK rq(0)->lock
smp_mb__after_spinlock
dequeue_task(X)
  X->on_rq = 0

				  if (p->on_rq)

				  smp_rmb();

				  if (p->on_cpu && ttwu_queue_wakelist(..)) [*]

				  smp_cond_load_acquire(&p->on_cpu, !VAL)

				  cpu = select_task_rq(X, X->wake_cpu, ...)
				  if (X->cpu != cpu)
switch_to(Y)
  X->on_cpu = 0
UNLOCK rq(0)->lock

However I'm having trouble convincing myself that's actually possible on x86_64 -- after all, every LOCK implies an smp_mb() there, so if ttwu observes ->state != RUNNING, it must also observe ->cpu != 1.

(Most of the previous ttwu() races were found on very large PowerPC)

Nevertheless, this fully explains the observed failure case.

Fix it by ordering the task_cpu(p) load after the p->on_cpu load, which is easy since nothing actually uses @cpu before this.

Fixes: c6e7bd7afaeb ("sched/core: Optimize ttwu() spinning on p->on_cpu") Reported-by: Paul E. McKenney [email protected] Tested-by: Paul E. McKenney [email protected] Signed-off-by: Peter Zijlstra (Intel) [email protected] Signed-off-by: Ingo Molnar [email protected] Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Forenche [email protected]


Friday 2021-03-26 06:16:05 by Jay Kalio

Create dubstep.js

Dubstep!!!

Polycarpus works as a DJ in the best Berland nightclub, and he often uses dubstep music in his performance. Recently, he has decided to take a couple of old songs and make dubstep remixes from them.

Let's assume that a song consists of some number of words (that don't contain WUB). To make the dubstep remix of this song, Polycarpus inserts a certain number of words "WUB" before the first word of the song (the number may be zero), after the last word (the number may be zero), and between words (at least one between any pair of neighboring words), and then the boy glues together all the words, including "WUB", in one string and plays the song at the club.

For example, a song with the words "I AM X" can transform into a dubstep remix as "WUBWUBIWUBAMWUBWUBX" and cannot transform into "WUBWUBIAMWUBX".

Recently, Jonny has heard Polycarpus's new dubstep track, but since he isn't into modern music, he decided to find out what was the initial song that Polycarpus remixed. Help Jonny restore the original song.

Input The input consists of a single non-empty string, consisting only of uppercase English letters, the string's length doesn't exceed 200 characters

Output Return the words of the initial song that Polycarpus used to make a dubstep remix. Separate the words with space.

Examples songDecoder("WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB") // => WE ARE THE CHAMPIONS MY FRIEND

Tags: FUNDAMENTALS, STRINGS


Friday 2021-03-26 09:46:49 by Darko

hi

yes hello tithsi is me harko im harko im very cool my life is very cool i live in a cool house cool famiky family cooks very cool meal me like it!!! sister plays roblox (normie) and nad i have cool friends like Federal Bureau Of Fart!!!! yes i am very famous and funny


Friday 2021-03-26 14:51:23 by Armand Wayoff

Rename HackerRank/The Love-Letter Mystery/solution.py to HackerRank/The Love-Letter Mystery (Easy)/solution.py


Friday 2021-03-26 15:14:14 by Edden Chew

fuck you I dont like how fragments in fragments work

fucking fix it


Friday 2021-03-26 15:41:58 by kevans

imgact_binmisc: limit the extent of match on incoming entries

imgact_binmisc matches magic/mask from imgp->image_header, which is only a single page in size mapped from the first page of an image. One can specify an interpreter that matches on, e.g., --offset 4096 --size 256 to read up to 256 bytes past the mapped first page.

The limitation is that we cannot specify a magic string that exceeds a single page, and we can't allow offset + size to exceed a single page either. A static assert has been added in case someone finds it useful to try and expand the size, but it does seem a little unlikely.

While this looks kind of exploitable at a sideways squinty-glance, there are a couple of mitigating factors:

1.) imgact_binmisc is not enabled by default, 2.) entries may only be added by the superuser, 3.) trying to exploit this information to read what's mapped past the end would be worse than a root canal or some other relatably painful experience, and 4.) there's no way one could pull this off without it being completely obvious.

The first page is mapped out of an sf_buf, the implementation of which (or lack thereof) depends on your platform.

MFC after: 1 week


Friday 2021-03-26 16:32:50 by Leigh Orf

Now we read zfp_accuracy_LOFS from LOFS data, and write the values to the netcdf files, along with the chosen ZFP accuracy for the hdf2nc netcdf output file. To be clear: The point of all of this is to get the benefit from ZFP not just from LOFS but from the netCDF files that are created on the fly with hdf2nc. There is no reason to make the ZFP accuracy parameter smaller for the netCDF file than was set in CM1; in fact I think I'll make a check for that... and right now the ZFP accuracy parameter for the netcdf file is hardwired in the code. If you want to change these, you have to go and change the constant in set_nc_meta_zfp_name_units in our big if else ladder that loops through all the possible variables:

else if(same(var,"thrhopert")) set_nc_meta_zfp_name_units(5.0e-2,cmd->zfp,nid,v3did,"long_name","density_potential_temperature_perturbation","K"); ^^^^^^ This if/then/else ladder is where all of the variable-dependent stuff happens. It really makes no sense to me to create another place where all of these are set, only to use a uniquely named variable for the ZFP accuracy parameter.

There may be a more elegant way to do this in C but if there is I don't know what it is. I'd really like a case statement but those only work with integers in C...

And to be abundantly clear, yes, we are compressing with CM1, uncompressing with hdf2nc, and recompressing back to ZFP in the netCDF files. So long as our accuracy parameters aren't stupid this should result in what we want w/out any artifats.

The moral of the story is to be aware of these compression values... and don't do anything stupid! I send stuff to standard output/error to remind people of things (right now only with --verbose). I'll probably fiddle a bit with this but the good news is, it works.


Friday 2021-03-26 16:56:09 by Willy Tarreau

MINOR: compat: add short aliases for a few very commonly used types

Very often we use "int" where negative numbers are not needed (and can further cause trouble) just because it's painful to type "unsigned int" or "unsigned", or ugly to use in function arguments. Similarly sometimes chars would absolutely need to be signed but nobody types "signed char". Let's add a few aliases for such types and make them part of the standard internal API so that over time we can get used to them and get rid of horrible definitions. A comment also reminds some commonly available types and their properties regarding other types.


Friday 2021-03-26 17:20:23 by NewsTools

Created Text For URL [www.iol.co.za/thepost/news/fighter-pilot-remembered-for-his-kindness-and-love-for-the-skies--368560fa-8b9e-4274-a14d-c8ba5112fd74]


Friday 2021-03-26 20:53:36 by Cosmin Tanislav

battle-city-mp: fix using x in place of y fuck you brain


Friday 2021-03-26 21:46:48 by Kylerace

emissive blockers are now just an overlay (with kickass fucking graphs). FUCK YOU MAPTICK (#57934)

currently emissive blockers are objects added to the vis_contents of every item. however mutable appearances as overlays can serve this role perfectly well and according to my tests should cause less maptick per item. for mobs mutable appearances dont work for reasons i dont understand so instead this adds the em_block object to overlays instead of vis_contents. these both use atom/movable/update_icon() now

graphed test results in pr


Friday 2021-03-26 22:16:56 by Tictim

feat!: #5 STATUES

BREAKING CHANGES: Forge version / mapping updated to 35.1.37 / 20201028-1.16.3 respectively.

Work in progress. No worldgen. Dialog is missing many lines and littered with TODO errors and NOTEXTs. Would be appreciated if someone can provide footage of missing lines...

New block, Goddess Statue, with one default and two alternative looks. Can actually talk and get orbs exchanged to vessels. Horned Statue is also redesigned. Now you talk to him to convert vessels using emeralds. Yeah :/ Not free anymore. But the first one is free, like in BotW. New item called Anti-Vessel is added, it's creative-only consumable that returns all Heart Containers / Stamina Vessels you consumed as items. It's basically what pre-update Horned Statue did. Vessel crafting recipe is gone. Use Goddess Statue. Besides, yeah, just JSON-based dialog system capable of handling fairly complicated sequences and basic server-client communication, animated dialog screen(oh my god I HATE minecraft GUI system so much), datagen stuff, achievements used by horned statue, bunch of code cleanup here and there, and 2 months of my life fucking annihilated because this damn thing lmao


< 2021-03-26 >