Skip to content

Add missing entity smaccers#34

Open
Doma-0609 wants to merge 6 commits intoAIPTU:masterfrom
Doma-0609:master
Open

Add missing entity smaccers#34
Doma-0609 wants to merge 6 commits intoAIPTU:masterfrom
Doma-0609:master

Conversation

@Doma-0609
Copy link
Copy Markdown
Contributor

@Doma-0609 Doma-0609 commented Apr 13, 2026

Added smaccer entities:

  • ArmorStand
  • CamelHusk
  • CopperGolem
  • ElderGuardianGhost
  • HappyGhast
  • ZombiePigman

Summary by Sourcery

Add support for additional smaccer NPC entity types and register them in the central handler.

New Features:

  • Introduce ArmorStand, CamelHusk, CopperGolem, ElderGuardianGhost, HappyGhast, and ZombiePigman smaccer NPC entities with appropriate metadata and sizing.
  • Register the new smaccer NPC entities in SmaccerHandler so they can be instantiated and used by name.

@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented Apr 13, 2026

Reviewer's Guide

Registers six new smaccer NPC entity types (ArmorStand, CamelHusk, CopperGolem, ElderGuardianGhost, HappyGhast, ZombiePigman) in SmaccerHandler and implements their corresponding entity classes with size, name, and network type bindings.

Class diagram for newly added Smaccer NPC entities and handler mappings

classDiagram
    class SmaccerHandler {
        - array npcs
    }

    class EntitySmaccer
    class EntityAgeable

    class ArmorStandSmaccer {
        + getInitialSizeInfo() EntitySizeInfo
        + getHeight() float
        + getWidth() float
        + getNetworkTypeId() string
        + getName() string
    }

    class CamelHuskSmaccer {
        + getInitialSizeInfo() EntitySizeInfo
        + getHeight() float
        + getWidth() float
        + getNetworkTypeId() string
        + getName() string
        + getBabyScale() float
    }

    class CopperGolemSmaccer {
        + getInitialSizeInfo() EntitySizeInfo
        + getHeight() float
        + getWidth() float
        + getNetworkTypeId() string
        + getName() string
    }

    class ElderGuardianGhostSmaccer {
        + getInitialSizeInfo() EntitySizeInfo
        + getHeight() float
        + getWidth() float
        + getNetworkTypeId() string
        + getName() string
    }

    class HappyGhastSmaccer {
        + getInitialSizeInfo() EntitySizeInfo
        + getHeight() float
        + getWidth() float
        + getNetworkTypeId() string
        + getName() string
    }

    class ZombiePigmanSmaccer {
        + getInitialSizeInfo() EntitySizeInfo
        + getHeight() float
        + getWidth() float
        + getNetworkTypeId() string
        + getName() string
        + getBabyScale() float
    }

    EntitySmaccer <|-- ArmorStandSmaccer
    EntitySmaccer <|-- CopperGolemSmaccer
    EntitySmaccer <|-- ElderGuardianGhostSmaccer
    EntitySmaccer <|-- HappyGhastSmaccer
    EntityAgeable <|-- CamelHuskSmaccer
    EntityAgeable <|-- ZombiePigmanSmaccer

    SmaccerHandler ..> ArmorStandSmaccer : registers
    SmaccerHandler ..> CamelHuskSmaccer : registers
    SmaccerHandler ..> CopperGolemSmaccer : registers
    SmaccerHandler ..> ElderGuardianGhostSmaccer : registers
    SmaccerHandler ..> HappyGhastSmaccer : registers
    SmaccerHandler ..> ZombiePigmanSmaccer : registers
Loading

File-Level Changes

Change Details Files
Register newly added NPC entity classes in the SmaccerHandler NPC registry.
  • Import new NPC classes into the handler namespace.
  • Add string-to-class mappings for each new NPC key in the $npcs array so they can be instantiated by name.
src/aiptu/smaccer/entity/SmaccerHandler.php
Implement CamelHusk NPC entity with age-aware sizing and network mapping.
  • Create CamelHuskSmaccer class extending EntityAgeable with baby/adult height and width variants.
  • Bind CamelHuskSmaccer to the CAMEL_HUSK network entity ID.
  • Provide display name and baby scale factor for Camel Husk entities.
src/aiptu/smaccer/entity/npc/CamelHuskSmaccer.php
Implement ZombiePigman NPC entity with age-aware sizing and network mapping.
  • Create ZombiePigmanSmaccer class extending EntityAgeable with baby/adult height and width variants.
  • Bind ZombiePigmanSmaccer to the ZOMBIE_PIGMAN network entity ID.
  • Provide display name and baby scale factor for Zombie Pigman entities.
src/aiptu/smaccer/entity/npc/ZombiePigmanSmaccer.php
Implement ArmorStand NPC entity with fixed sizing and network mapping.
  • Create ArmorStandSmaccer class extending EntitySmaccer with fixed height and width.
  • Bind ArmorStandSmaccer to the ARMOR_STAND network entity ID.
  • Provide display name for Armor Stand entities.
src/aiptu/smaccer/entity/npc/ArmorStandSmaccer.php
Implement CopperGolem NPC entity with fixed sizing and network mapping.
  • Create CopperGolemSmaccer class extending EntitySmaccer with fixed height and width.
  • Bind CopperGolemSmaccer to the COPPER_GOLEM network entity ID.
  • Provide display name for Copper Golem entities.
src/aiptu/smaccer/entity/npc/CopperGolemSmaccer.php
Implement ElderGuardianGhost NPC entity with fixed sizing and network mapping.
  • Create ElderGuardianGhostSmaccer class extending EntitySmaccer with square height/width dimensions.
  • Bind ElderGuardianGhostSmaccer to the ELDER_GUARDIAN_GHOST network entity ID.
  • Provide display name for Elder Guardian Ghost entities.
src/aiptu/smaccer/entity/npc/ElderGuardianGhostSmaccer.php
Implement HappyGhast NPC entity with fixed sizing and network mapping.
  • Create HappyGhastSmaccer class extending EntitySmaccer with square height/width dimensions.
  • Bind HappyGhastSmaccer to the HAPPY_GHAST network entity ID.
  • Provide display name for Happy Ghast entities.
src/aiptu/smaccer/entity/npc/HappyGhastSmaccer.php

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants