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

MultiZ WIP/Staging #27189

Closed
wants to merge 22 commits into from
Closed

Conversation

RemieRichards
Copy link
Contributor

@RemieRichards RemieRichards commented May 12, 2017

Help me/Motivate me to finish this.

TODO:

  • Fix Merge errors/reverts due to @coiax thinking it was a good idea to rename /Cleanable to /cleanable thus ruining git on windows OS.
  • Modernisation (1 month old code is like looking at something cave-people wrote)
  • Fix atmos neighbours calculation (run twice atm) - @duncathan / @MrStonedOne / @Cyberboss
  • Unify update_icon() and update_icons() (still 2 procs though) such that they atleast call ..() or some other method of cascading, to update Zshadows.
  • Pipes - @duncathan
  • Power
  • Explosions - Thanks @Razharas
  • Throwing (Eg: half way through a throw, try and move to the z below, and if that works repeat at the next "half" (which is 3/4 total))
  • Looking up/down as a mob
  • Climbing
  • 3D/MultiZ Vines - Thanks @Razharas - Vines can grow Up/Down through holes to connected Z levels, except for bluespace, that can move Up/Down to ANY connected Z level (meaning they can go through floors/ceilings)

Feel free to PR to this PR if you want to help.

@RemieRichards RemieRichards added Atmospherics Nobody knows how this code works Feature Exposes new bugs in interesting ways Work In Progress labels May 12, 2017
@duncathan
Copy link
Contributor

ooo multiz pipes sounds fun

@Iamgoofball
Copy link
Contributor

Iamgoofball commented May 12, 2017

why did you rename the folder back? the codebase standard is lowercase folder names

or is this just temp

@RemieRichards
Copy link
Contributor Author

RemieRichards commented May 12, 2017

@Iamgoofball literally wouldn't commit otherwise, every commit attempt reported the files as being "staged in the index", which is git terms for "fucked", they're super-reverted, but just for now, it'll be fixed before merge (though someone else might have to PR that to this PR for me since git is unhappy)

@duncathan there's a stub/attempt at them in the PR, but they're a tad runtime-y at present.
Gas flow works 100% though, flowing up and down through holes, and those ancient ass Zvent things do actually work.

@Iamgoofball
Copy link
Contributor

i love git

@GunHog
Copy link
Contributor

GunHog commented May 12, 2017

HEAVY BREATHING

I want this. I want this now. YES YES YES YES YES YES ALL THE YES!! If I could help in any way, I would certainly like to try! A multi-Z station, even if PlanetStation were to fail, would be AMAZEBALLS!

Copy link
Member

@Cyberboss Cyberboss left a comment

Choose a reason for hiding this comment

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

I don't know if this will need special rules in the map loader. But if not...

Add a multiz_test.json in _maps like this

{
    "map_name": "MultiZ Station",
    "map_path": "map_files/debug",
    "map_file": "multiz_test.dmm",
    "minetype": "lavaland",
    "transition_config":
    {
        "MAIN_STATION": "UNAFFECTED"
    }
}

@@ -0,0 +1,21 @@
#if !defined(MAP_FILE)
Copy link
Member

Choose a reason for hiding this comment

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

This entire file should be just #define FORCE_MAP "multiz_test.json"

var/list/zshadows

/datum/subsystem/z_levels/New()
NEW_SS_GLOBAL(SSz)
Copy link
Member

Choose a reason for hiding this comment

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

Remove these two lines

@@ -0,0 +1,20 @@
var/datum/subsystem/z_levels/SSz

/datum/subsystem/z_levels
Copy link
Member

Choose a reason for hiding this comment

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

Replace these three lines with SUBSYSTEM_DEF(z_levels)

@@ -60,7 +50,7 @@
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6")
mergeable_decal = 0

/obj/effect/decal/cleanable/blood/gibs/Initialize()
/obj/effect/decal/cleanable/blood/gibs/New()
..()
Copy link
Member

Choose a reason for hiding this comment

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

;(

Copy link
Member

Choose a reason for hiding this comment

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

Seems you need to revert this entire file to upstream

@@ -11,7 +11,7 @@
icon_state = "ash"
mergeable_decal = 0

/obj/effect/decal/cleanable/ash/Initialize()
Copy link
Member

Choose a reason for hiding this comment

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

This one too



/turf/open/open_z/Entered(atom/movable/AM, atom/oloc)
..()
Copy link
Member

Choose a reason for hiding this comment

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

Another performance worry

LAZYINITLIST(SSz.vertical_connections)
var/list/L = SSz.vertical_connections["[A]"]
if(!L)
L = list()
Copy link
Member

Choose a reason for hiding this comment

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

LAZYINITLIST(L)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

old branch.

SSz.vertical_connections["[A]"] = L
L = SSz.vertical_connections["[B]"]
if(!L)
L = list()
Copy link
Member

Choose a reason for hiding this comment

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

again

var/atom/owner

/atom/movable/zshadow/Initialize()
..()
Copy link
Member

Choose a reason for hiding this comment

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

. = ..()

return

/atom/movable/zshadow/Destroy()
if(!QDELETED(owner)) //Nothing destroys these if their owner exists, they *ARE* their owner as far as we're concerned
Copy link
Member

Choose a reason for hiding this comment

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

check the force param

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Isn't ignoring force bad? that annoys me because I want to ignore force here.

Copy link
Member

Choose a reason for hiding this comment

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

Almost nothing uses force atm, but we should support it in case we ever do decide we need it

@Cyberboss
Copy link
Member

Cyberboss commented May 12, 2017

For explosions, might just be as easy as reducing all power levels by some set amount for every level up/down

@RemieRichards
Copy link
Contributor Author

@Cyberboss yes, it's something like that, as I said however, I've just not worked on it in a while (was ensuring the "core" was solid first)

@coiax
Copy link
Member

coiax commented May 12, 2017

@RemieRichards maybe you could shout at me in IRC?

content (on/off, volume_rate) aren't implemented.

Use this for ruins and stuff I guess, or fix it up proper.
*/
Copy link
Contributor

Choose a reason for hiding this comment

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

honestly just remove zvent

Copy link
Contributor

Choose a reason for hiding this comment

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

By that I mean that cross-z connections should only happen between nodes. Making that work shouldn't be too difficult, but having a vent like this is unnecessary complexity for a redundant gain (pipe up connected to a vent is basically the same)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sure I guess, it just seemed cruel to kill it when it survived, semi-working, for such a long time.
rip zvent.

Copy link
Contributor

Choose a reason for hiding this comment

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

I do appreciate the respect you had for this poor piece of oldmos

Copy link
Contributor Author

Choose a reason for hiding this comment

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

;_;7

@optimumtact
Copy link
Member

staged in the index just means the files have been git added, but not yet committed, there's absolutely no reason to revert that change

@RemieRichards
Copy link
Contributor Author

RemieRichards commented May 13, 2017

I didn't revert it, technically.
I renamed my Cleanable folder to cleanable (because it DIDNT come in the merge commit), and committed that, so they never got updated because they're not the same files (if you look at the cleanable folder's history for example, as far as git is concerned, it only has 2 commits, the rename and MrPerson's mutable appearance changes)

It was quite literally the only thing I could do to commit it (everytime I went to the commit it shat itself about said files), and as I have said, it will be sorted before merge time.

@optimumtact
Copy link
Member

ok

@RemieRichards
Copy link
Contributor Author

Right, cleanup is done.
Fixing, Features, Improvements can begin (eg: @duncathan zpipes)

@BeeSting12
Copy link
Contributor

@RemieRichards
I'm working on a map for this right now which is loosely based on baystation's torch. I should be okay making the different zlevels and I can connect them up later right?

@RemieRichards
Copy link
Contributor Author

yes, though if you put a "zopen" turf on a zlevel, it will automatically connect it's Z level with the one below, which if you're mapping a multiz station you're likely to use zopens for like, balconies and things.

@coiax
Copy link
Member

coiax commented May 15, 2017

Bay's multiz explosion code is not very complex, if you want to look at that.

@RemieRichards
Copy link
Contributor Author

No need, I already have it planned (And I think Razharas is tackling it, I know he's been messing around with it atleast)

Makes vines 3d
@Razharas
Copy link
Contributor

Razharas commented May 15, 2017

For now i pr the 3d vines RemieRichards#18

@RemieRichards Check em //

if(zshadow)
zshadow.SyncLoc()
else
if(GetAboveConnectedTurf(src))
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is meant to be GetZOpenAbove(src) (so that Zshadows lazy-create (the creation of a hole above them is already covered))

@BeeSting12
Copy link
Contributor

@RemieRichards
Gravity?

@Razharas
Copy link
Contributor

RemieRichards#19

@Ausops
Copy link

Ausops commented May 28, 2017

*motivates remie

@lzimann lzimann added Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts Stale Even the uncaring universe rejects you, why even go on labels May 29, 2017
@lzimann
Copy link
Contributor

lzimann commented May 29, 2017

Just reopen when this keeps going

@lzimann lzimann closed this May 29, 2017
@duncathan
Copy link
Contributor

maybe we should make this a branch on the main repo

@lzimann
Copy link
Contributor

lzimann commented May 30, 2017

That also works.

@GunHog
Copy link
Contributor

GunHog commented May 30, 2017

That is a good idea, this is a long project and seeing it closed could be discouraging to the people working on it!

@Cyberboss
Copy link
Member

Cyberboss commented May 30, 2017 via email

@GunHog
Copy link
Contributor

GunHog commented May 30, 2017

I am aware.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Atmospherics Nobody knows how this code works Feature Exposes new bugs in interesting ways Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts Stale Even the uncaring universe rejects you, why even go on
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet