Einstein-Engines icon indicating copy to clipboard operation
Einstein-Engines copied to clipboard

Multi-Color Loadouts

Open angelofallars opened this issue 11 months ago • 0 comments

Description

The single-color loadout customization has been awesome for character customization, but being able to customize several colors of a loadout item would absolutely open the floodgates for so much new clothing. We also need multi-color customization so we can customize the soles of shoes without coloring the rest of the shoe.

Potential Format:

For shoes that have two colorable parts, the sole and the tip:


# White Shoes
- type: entity
  parent: ClothingShoesBaseButcherable
  id: ClothingShoesColorColorable
  # ...
  components:
  - type: Sprite
    sprite: Clothing/Shoes/color.rsi
    layers:
    - state: icon
      color: "#FFFFFF"
    - state: soles-icon
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left
        color: "#FFFFFF"
      - state: soles-inhand-left
      right:
      - state: inhand-right
        color: "#FFFFFF"
      - state: soles-inhand-right
  - type: Clothing
    sprite: Clothing/Shoes/color.rsi
    clothingVisuals:
      shoes:
      - state: equipped-FEET
        color: "#FFFFFF"
      - state: contrastedsoles-equipped-FEET

The loadout entry could look like this:


- type: loadout
  id: LoadoutShoesColorable
  category: Shoes
  cost: 0
  exclusive: true
  colors:
    - id: tip
      layerStates:
      - icon
      inhandVisuals:
      - inhand-left
      - inhand-right
      clothingVisual:
      - equipped-FEET
    - id: soles
      layerStates:
      - soles-icon
      inhandVisuals:
      - soles-inhand-left
      - soles-inhand-right
      clothingVisual:
      - contrastedsoles-equipped-FEET
  requirements:
    - !type:CharacterItemGroupRequirement
      group: LoadoutShoes
  items:
    - ClothingShoesColorColorable

Then for the names of the colors on the editor, their locale string can be set like this:

loadout-name-LoadoutShoesColorable-color-tip = Tip
loadout-name-LoadoutShoesColorable-color-soles = Soles

When transitioning from CustomColorTint to this, the saved tint can simply be applied to the first color entry in the definition.

angelofallars avatar Jan 08 '25 17:01 angelofallars