netradiant-custom icon indicating copy to clipboard operation
netradiant-custom copied to clipboard

How to Make Multiple Brushes Separate func_breakable Entities in NetRadiant Custom?

Open noire-dev opened this issue 1 year ago • 9 comments

Hello,

I'm currently working in NetRadiant Custom and encountered an issue. I want to select multiple brushes and make each one a separate func_breakable entity. However, when I select all the brushes and convert them to func_breakable, they are grouped together and break as a single unit. Is there a way to automatically convert each selected brush into an individual func_breakable entity without having to do it manually for each brush?

Thank you for your assistance!

noire-dev avatar Aug 22 '24 13:08 noire-dev

I can try to implement this function and submit a pull request and make it as a command in shortcuts

noire-dev avatar Aug 22 '24 14:08 noire-dev

and I also want to add Quake Sandbox gamepack

noire-dev avatar Aug 22 '24 14:08 noire-dev

Select only the ones which are to be each separate entity. If they are already part of 1 single entity you must ungroup them, see shortcuts list for entity ungroup (move back to worldspawn)

ensiform avatar Aug 22 '24 15:08 ensiform

then it revert to worldspawn not func_breakable

noire-dev avatar Aug 22 '24 15:08 noire-dev

There is no way to create multiple entities at once from existing brushes, i also think that it's not frequent usecase to handle. After all in idtech games submodel entity limit is quite low.

Quake Sandbox gamepack would be welcome!

Garux avatar Aug 22 '24 16:08 Garux

The thing is, Quake Sandbox allows all sorts of interesting things like this, and I think I've implemented that feature. Thanks!

noire-dev avatar Aug 22 '24 16:08 noire-dev

maybe i make pull request for this, and yes, quake sandbox have big limits

noire-dev avatar Aug 22 '24 16:08 noire-dev

I desided to make my own NRC fork for QS with all new features for MiTech engine

noire-dev avatar Aug 22 '24 18:08 noire-dev

Hey Noire, my func_breakable is 3 separate entities all with the same name. It did not require any special map compiler or anything, just 2 patches for the rounded top and 1 brush for the lock square.

https://www.quaketastic.com/files/screen_shots/breakable_lock2.gif

There are origin brushes in the middle of each piece. Within a few days I will be releasing a sample map with map source and QuakeC source.

So in that pic, the lock is 3 separate entities. When one piece of the lock breaks, it signals the other pieces to be broken too.

For completion, I did that experiment on this page:

https://www.moddb.com/mods/zircon-engine

Baker7 avatar Sep 06 '24 23:09 Baker7

This is just to supply some information. My modified DarkPlaces engine (Zircon) has a .map pre-processor I wrote.

And it can turn a func_wall with 100 brushes into a 100 func_wall during compile time (I run the Zircon engine as the "CSG Tool" so it gets first crack at the .map, locates entities with an "_atomize" "1" key/value and then takes every brush and makes it an entity with the original's key/values).

Why would you want to do this? Well, actually the func_breakable in this thread would be one use.

But this is more what I have used it for already:

https://github.com/user-attachments/assets/c919b808-33e2-4ec9-a4e6-2e8ea4caa607

What I do it is chop up a wall in the J.A.C.K. map editor with CTRL-X tool (no idea what it is called) and make it a func_wall. The many pieces are a single entity with "_atomize" "1". The .map pre-processor sees the _atomize and re-writes the .map file with each brush as a func_wall.

While I could do this process by hand and convert each brush into an entity -- I think that would take half-an-hour to an hour and it would drive me crazy.

atomize_8mb

Eventually, I want to make some explodables. Like bridges that blow up.

Baker7 avatar Jan 06 '25 04:01 Baker7

I think it would be okay to have such 'explode entity' function among ones in Bobtoolz plugin. Explode logic looks optimal, as it avoids extra user input.

Garux avatar Jan 06 '25 05:01 Garux