Skip to content

Separate large gear from axle - integrate large gears into 'mechanism' system #230

@Da-Technomancer

Description

@Da-Technomancer

Suggestion
Currently, large gears have a central 'axle' built in, which can't be removed.
Change it so that large gears don't have a central axle, but one can be added by right clicking with an axle.

Also, rework large gears to be integrated into the 'mechanism' system internally, allowing it to go into the same blockspace as small gears, clutches, etc.
This represents a breaking change (removes the large gear block from the game, making it a subtype of the mechanism block), and will not be implemented until the next breaking version.

Ideas for how to implement this (note to self so I don't forget):

  • Change the GearMaterial property of mechanisms to be a new 'MechanismData' object, which multiple classes exist for for different mechanism types (most version just have GearMaterial, for large gear edges it also stores the location of the center of the large gear), with ability to register various deserializers/serializers for the different types.
  • Fix the hitbox on the large gear edge to actually look kind of round
  • Both the large gear core and the edge blocks are converted to mechanisms
  • Need to add something to the basic mechanism block allowing breaking one mechanism to break mechanisms in other blockspaces

Justification
Large gears generally don't 'play well' with other gear types- they can't go in the same blockspace as small gears, clutches, other axles, etc. This would be a step towards improving overall cohesion of different gear types.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions