Skip to content

Milking Machine!#408

Open
Compilatron144 wants to merge 4 commits intoFloof-Station:masterfrom
Compilatron144:MilkingMachine
Open

Milking Machine!#408
Compilatron144 wants to merge 4 commits intoFloof-Station:masterfrom
Compilatron144:MilkingMachine

Conversation

@Compilatron144
Copy link
Copy Markdown
Contributor

About the PR

Adds a new constructable device, the milking machine, unlocked as part of hydroponics tech. It's main purpose is to milk cows - but it also works on "cows". Primarily for the kinks but also perfectly valid as a chef/botanist utility.

Why / Balance

Moooo?

Technical details

This is my first C# PR - and I no doubt haven't done a brilliant job. If anyone more experienced with robust toolbox is willing to trudge through my cesspit of code, please do feel free to point out what I should have done instead.

Media

Click to show

image

Requirements

  • I have tested all added content and changes.
  • I have added media to this PR or it does not require an ingame showcase.

Licensing:

Breaking changes

Changelog

🆑

  • add: Added the milking machine, for milking cows. And "cows".

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 11, 2026

RSI Diff Bot; head commit 1f18e12 merging into 80d9eac
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_Euphoria/Objects/Structures/Lewd/milker.rsi

State Old New Status
milktank-1 Added
milktank-2-1 Added
milktank-2-2 Added
milktank-2-3 Added
milktank-2-4 Added
milktank-2-5 Added
milktank-2-6 Added
milktank-2-7 Added
milktank Added
unlit Added

Resources/Textures/_Euphoria/Objects/Structures/Lewd/milker_tube.rsi

State Old New Status
tube Added

Edit: diff updated after 1f18e12

@Mnemotechnician
Copy link
Copy Markdown
Collaborator

Mnemotechnician commented Apr 11, 2026

There's a lot of pretty bad coding practices in there. I don't have the mental capacity to go through them all right now, but why not use the leash system for this? Give the machine a leash component, expand the leash system with the drag&drop behavior you have there...

@Mnemotechnician
Copy link
Copy Markdown
Collaborator

...or, at the very least, you should reuse leash visuals. You can add a container to your machine and spawn an entity with LeashVisuals inside. You don't need to duplicate the entire damn thing.

@Compilatron144
Copy link
Copy Markdown
Contributor Author

Compilatron144 commented Apr 11, 2026

There's a lot of pretty bad coding practices in there. I don't have the mental capacity to go through them all right now, but why not use the leash system for this? Give the machine a leash component, expand the leash system with the drag&drop behavior you have there...

I didn't want to include joints of physics in any of this as it wasn't something I wanted to worry about

And yes I am aware it's not the best, this is my first C# PR. I'm trying my best here ;-;

@Mnemotechnician
Copy link
Copy Markdown
Collaborator

Mnemotechnician commented Apr 12, 2026

And yes I am aware it's not the best, this is my first C# PR. I'm trying my best here ;-;

Nobody writes perfect code, but please don't ever ever duplicate entity systems and things alike. There's almost always a way to tweak the system to allow you to REUSE it for your needs instead of duplicating.

I'm referring to the leash visualizer here. In this situation it's possible to completely reuse it - see how the leash system sets up leash visuals (it adds a container to the leashed mob and spawns an entity with LeashVisuals inside)

@Compilatron144
Copy link
Copy Markdown
Contributor Author

And yes I am aware it's not the best, this is my first C# PR. I'm trying my best here ;-;

Nobody writes perfect code, but please don't ever ever duplicate entity systems and things alike. There's almost always a way to tweak the system to allow you to REUSE it for your needs instead of duplicating.

I'm referring to the leash visualizer here. In this situation it's possible to completely reuse it - see how the leash system sets up leash visuals (it adds a container to the leashed mob and spawns an entity with LeashVisuals inside)

As requested I removed the duplicate component and reused the leash visualizer it as requested

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants