Skip to content

Compromises

Neovitalism edited this page Nov 17, 2024 · 11 revisions

Overview

Compromises are minor changes to the old breeding system done due to not being able to modify code on the client. All compromises can all be viewed below.


Displaying the Environment Size

Back on 1.12, the players needed to look at the ranch block and white squares would appear on top of blocks that the environment covered. This display was created on the client, and has since been removed.

In OldSchoolBreeding, we had to compromise by using particles. These particles, dubbed smart boundaries, surround the daycare's environment with coloured particles, conforming to blocks on the edge of the boundary. The particle colour by default matches the colour of the daycare. The particle colour is configurable by hex code. Having the owner click on the daycare will display the smart boundary to them for 5 seconds. The smart boundary is permanently visible during the environment upgrade process until it ends, explained here.

Pixelmon 1.12:

OldSchoolBreeding:


The UIs

On 1.12, clicking the ranch block would result in a small UI popping up, displaying the pokémon in the ranch, a "Manage Pokémon" button, and an egg with a button to take it, if applicable. Hitting "Manage Pokémon" would bring up the player's PC UI, but instead of the party at the bottom, there would be two slots to place pokémon into the ranch. Clicking an unlocked pokémon in the PC would place it inside of the ranch, locking it in the PC. Clicking the same pokémon again would unlock it in the PC and remove it from the ranch. Clicking on an egg in the PC would do nothing. No data on the pokémon was given in this UI, forcing you to double check the pokémon in your PC.

In OldSchoolBreeding, we could not manipulate the PC UI to replicate this behaviour, so we instead created our own UI with a chest UI and some magic. This UI is completely configurable, but we supply an amazing default config. When the owner clicks on their daycare, they are greeted with a UI displaying their PC with slots on the side: 2 for the parents, an egg slot, and a question mark. Eggs in the PC are grayed out by default, and not interactable. Hovering on any non-egg pokémon displays a configurable amount of data on the pokémon itself. Clicking a pokémon adds it to the daycare, and takes it from the player's PC. While the lock from 1.12 does still exist, it's handled on the client, making it unusable/unsafe for us to use. Clicking on the parent again returns the pokémon to the player. The egg slot will populate once the parents create an egg, and clicking on it will give the egg to the player. Hovering the question mark at the bottom shows the player the environment points that their daycare has.

Pixelmon 1.12:

OldSchoolBreeding:


Environment Upgrades

In Pixelmon, you used to be able to upgrade the size of the environment by right-clicking the ranch block with a ranch upgrade. Doing so would open a small UI, asking for a choice between positive X, negative X, positive Z, and negative Z. Clicking on one of these options would expand the environment in the specified direction. After a direction was expanded 3 times, it would no longer appear in the UI. Once expanded to the maximum in all directions, clicking on the ranch block would simply open the parent UI instead. Breaking a ranch block would not drop the upgrades used on it.

In OldSchoolBreeding, due to both not being able to access the old UI and finding the old way unintuitive, we opted for a completely different approach. When clicking on the daycare with the configured daycare upgrade, instead of displaying a UI to upgrade the environment size, OldSchoolBreeding goes for a more interactive approach, spawning decorated armor stands into the world faced in the direction that will expand. These armor stand's head item, rotation, and height are configurable. Clicking on an armor stand will expand the environment in that direction. This means no more trying to figure out which direction you're trying to upgrade first! Once a direction is expanded 3 times, the armor stand for that direction will no longer spawn when upgrading. If the player interacts with the daycare with a daycare upgrade after it's already been upgraded to the maximum, a configurable message will be sent to the player, and nothing else will happen. While in the upgrade process, if the player exits the environment area, the player will be refunded the upgrade and the process will end. If the player attempts to upgrade a different daycare, the process will be moved over to that daycare at no cost. Whether or not the daycare drops it's upgrades is configurable, default true. Whether or not daycares drop their upgrades while in creative is also configurable.

Pixelmon 1.12:

OldSchoolBreeding:


Stage Particles

Stage particles are different particles displayed above the parents heads to display the breeding stage the parent is in. There are 6 stages total, including stage 0.

In Pixelmon, a different color heart would be displayed every few seconds at a random interval. The breeding stage the parent was in is what affected the colour of the heart, found in the table below. Once an egg is created, the parents would continue display the last particle colour that they previously displayed.

Stage Colour
0 No Particle.
1 Gray
2 Purple
3 Blue
4 Yellow
5 Red

In OldSchoolBreeding, we had to compromise due to those particles no longer being in Pixelmon and Minecraft's heart particle not being able to be colored. Instead, we display a configurable particle every 5 seconds. By default, each stage displays stage amount of minecraft's heart particles. Once an egg is created, the parents will stop displaying particles. You can manually trigger these particles by right-clicking the parent.

Pixelmon 1.12:

OldSchoolBreeding:


Clone this wiki locally