Giter VIP home page Giter VIP logo

openrct2-scenery-manager's Introduction

OpenRCT2 Scenery Manager

An OpenRCT2 plug-in to copy and paste scenery, with many more features.

Content

Installation

  1. Make sure that your OpenRCT2 version is up-to-date. You need at least version 0.4.6 or a recent development version.
  2. Go to the releases page and download the file
  1. Save it in the plugin subfolder of your OpenRCT2 user directory.
    On Windows, this is usually at C:Users\{User}\Documents\OpenRCT2\plugin.
    If you had a previous version of the Scenery Manager installed, make sure to delete its file from the plugin folder.
  2. Start OpenRCT2 and open a scenario. If this is the first time that you use this plug-in, it should show a welcome message.

Usage

User Interface

The preferred way to work with this plug-in is to use hotkeys. Nevertheless, everything can also be done via the Scenery Manager window.

To open the graphical user interface, click on "Scenery Manager" in the map menu in the upper toolbar of OpenRCT2, or simply press the [W] key.

If you want to change any hotkey, go to the 'Controls and Interface' tab of OpenRCT2's 'Options' window.

Copy and Paste

  • Select Area [CTRL + A]: Activates the selection tool. You can now select an area of the map with click and drag (click the left mouse button and hold it down, move the cursor, release the button).
    If you want to edit an existing selection, press [CTRL + SHIFT + A] to enter a multi-selection mode.

  • Copy Area [CTRL + C]: Copies the selected region to the clipboard and switches to paste mode.

  • Paste Area [CTRL + V]: Activates the paste mode. If you now hover the cursor over the map, a ghost of the scenery template will be shown. Click anywhere to place the template at the shown location.

  • Cut Area [CTRL + X]: Copies and then removes the selected area.

  • Load Template [SHIFT + L]: Opens a dialog where you can load a saved template from the template library to the clipboard.

  • Save Template [SHIFT + S]: Opens a dialog where you can permanently save the current template from the clipboard to the template library.

Note that any tool in OpenRCT2 can be cancelled by pressing the [ESC] key.

Paste Options

Basic options:

  • Rotate Template [Y]: Rotates the template.

  • Mirror Template [CTRL + M]: Mirrors the template. Only works in paste mode.

  • Height offset: By default, templates are pasted at the surface's height. This option adds a vertical offset to the template. Press [J] to decrease, [K] to reset and [L] to increase the offset.

Options shared with other tools:

Advanced options, mostly relevant for Raw place mode:

  • Force order: Preserves the exact order of all elements on a tile when they were copied. It inserts the elements at the end of the source tile, rather than merging them into existing elements with respect to their height. This is useful only when the order of the elements were changed in the Tile Inspector.

  • Merge surface: Allows multiple surface elements on a single tile instead of replacing the existing element.

  • Cut surface: By default, the 'cut' operation copies surfaces, but does not remove them, which is the desired behaviour in the most cases, especially when working in safe mode. If this option is enabled, the 'cut' operation will also remove surfaces (if the corresponding filter is also enabled).

Filter

Check or uncheck any of the checkboxes in the filter section of the window. It will affect both copy and paste actions.
You can also use the [CTRL + 1] through [CTRL + 9] hotkeys to toggle one filter respectively, or [CTRL + 0] to toggle all filters at once.

Vertical Bounds

Enable upper and lower bounds to restrict the paste operation to a vertical subsection. Choose Intersected elements to paste all elements that intersect the given bounds. Choose Contained elements to paste all elements that are completely contained in the given bounds.

Clipboard

Any copied or loaded template gets added to the clipboard. You can cycle through the entries of the clipboard with the [Q] (previous template) and [E] (next template) keys. You can delete the current template with the [CTRL + D] hotkey.

The clipboard will not be persistent across sessions. If you want to keep your copied templates, save them to the library!

Library

The library consists of an editable structure of folders and files (i.e. scenery templates), just like any other file system. Here you can store all your creations in a well-ordered manner.

Double-click any template to load it. Alternatively you can use the buttons in the first tab or the hotkeys:

  • Load Template [SHIFT + L]: Opens a window to select and load a template. The template is then added to the clipboard.

  • Save Template [SHIFT + S]: Opens a window to save the clipboard's current template to a new file or override an existing one.

Scatter Tool

The scatter tool is a brush that randomly places scenery from a previously selected palette. You can choose up to five different small scenery objects or large scenery objects and choose a density for each of them. Click on the Pick button to select an object from the map.

Scatter Tool Options
  • Randomise rotation: Picks a random rotation for each pasted scenery item.

  • Randomise quadrant: Picks a random quadrant for each pasted quarter tile small scenery item.

  • Height offset: Pastes the scenery at the given height offset above the surface.

Similar to scenery templates, scatter patterns can also be saved and loaded.

Bench Brush

The bench brush works similar to the scatter tool. It can place footpath additions, such as benches, litter bins, lamps or queue TVs, in a predefined pattern onto existing footpaths.

Choose a pattern size and up to that many footpath additions. The brush will place them in the specified pattern onto existing footpaths.

Object Index

The object index contains every loaded scenery object and footpath object in the current scenario. You can refresh the index with the Refresh index button, though this is only really necessary if you changed the loaded objects during the game, which does not happen in normal scenario play.

Furthermore, the Scan map and Scan area buttons scan the map or a specified area, respectively, and count the number of instances of each loaded object. It also keeps track of the number of those instances that are within the park borders. This process may take a long time, especially on larger maps!

At the top, you can filter the list for type, usage and name or identifier.

Object Details

Clicking on any object in the object index will open another window that displays this object's information. Additionally, you can cycle though the object's instances with the Jump button, or go to the Replace tab (see Element Replacing below) by clicking one of the Go to: ... buttons.

Element Replacing

You can search for tile elements of a certain type and with certain properties and also replace them by something else (of the same type).

Searching

In the first part of the tab, you can specify the type and the properties that you want to search for. Here, < Any > means that the elements will not be filtered for this property.

If you play on a CSO (Custom Scenery Object) map, then you can choose to filter footpaths by either the legacy object or the surface and railings objects. The other property / properties will then be set to < None >.

  • Jump to next instance: Cycles through all instances on the map that fit the specified properties.

  • Search and Delete: Searches all instances on the map that fit the specified properties and deletes them. There is no undo function, so be careful!

Replacing

In the second part of the tab, you can specify properties that should be replaced. The type of the replacing element must always match the type of the replaced object.

Again, if you play on a CSO map, footpaths are a little bit tricky. If you want to replace a legacy object, you have to either specify another legacy object, or both a surface object and a railings object.

  • Swap...: Swaps all property values of the 'Replace with' section with the property values of the 'Search for' section.

  • Search and Replace: Searches all instances on the map that fit the specified properties of the 'Search for' section and replaces them with the specified values of the 'Replace with' section. There is no undo function, so be careful!

Search Options
  • Selected area only: Restricts the search to the area that was selected on the map.

  • Select area: Starts the selection tool to select an area.

  • In park only: Restricts the search to the area within the park borders.

  • Place mode: See Settings.

Settings

These settings are persistent through sessions.

All Tools

  • Cursor mode: This setting specifies which tile a tool has clicked on or is hovering over. In Surface mode, the tile is determined by the surface element that the cursor points to. So it ignores any scenery, track or entities that may lie between the cursor and the surface. In Scenery mode, the tile is determined by the element directly under the cursor, let it be scenery, track or surface.

  • Place mode: Specifies which internal mechanisms are used to place and remove elements on the map.

    • Safe: This mode is safe for regular scenario play and also for multiplayer. It applies collision detection (which can be turned off by cheats) and other validations. This mode does not support pasting terrain and may paste queue layouts incorrectly. (Internally, it uses GameActions.)

    • Raw: This mode supports copying of queue layouts, terrain, track segments and much more. However, it does not do any validations (e.g. collision detection). (Internally, it uses raw data access.)

  • Show ghost preview: Disabling this increases performance with huge templates or brushes.

  • Behaviour if element unavailable: This only applies to loaded templates and scatter patterns, or if you are changing the loaded objects while a scenario is running. In these cases, it can happen that you want to place an element that is unavailable in the current scenario.

Paste Tool

  • Disable height hotkeys: Disables the height hotkeys ([J], [K], [L]) while the paste tool is inactive.

  • Small step size: Most elements can only be placed at heights that are a multiple of 2 units. Enabling this setting allows to place everything at any height.

  • Height offset with mouse cursor: Allows to click and drag the mouse up and down to paste a template at a different height.

  • Rotation with mouse cursor: Allows to click and drag the mouse left and right to paste a template at a different rotation.

    • Flip rotation direction: Swaps clockwise and counterclockwise rotation.

    • Sensitivity: Adjusts the sensitivity of the rotation.

Area Selection Tool

  • Keep selection: If enabled, it keeps the area selection when the tool is finished. Otherwise, the area selection will be reset.

  • Options window: If enabled, all relevant options will be shown in a small window while the area selection tool is active.

Brush Tool

  • Size: The diameter or side length of the brush.

  • Shape: The shape of the brush, either Circle or Square.

  • Drag to place: If enabled, you can hold down the mouse button and drag the cursor across the map to apply the brush along the path of the cursor.

  • Options window: If enabled, all relevant options will be shown in a small window while the brush tool is active.

Known Problems

  • [safe mode] Copy / paste does not work well on sloped surfaces.
  • [safe mode] Banner text and colour do not copy.
  • [safe mode] Queue layouts do not copy correctly.
  • Scroll position resets when list content changes.
  • Large scenery does not mirror.
  • Trackitecture does not work cross-map.

Planned Features

  • Blueprint placing.
  • Localisation (language support).
  • Share your creations online.
  • (Edit history and undo function.)
  • (Instancing system.)
  • Whatever you propose.

Subscribe to my YouTube channel to learn about upcoming features: Sadret Gaming

Support Me

If you find any bugs or if you have any ideas for improvements, you can open an issue on GitHub or contact me on Discord: Sadret#2502.

If you like this plug-in, please leave a star on GitHub.

If you really want to support me, you can buy me a coffee.

Copyright and License

Copyright (c) 2020-2022 Sadret
The OpenRCT2 plug-in "Scenery Manager" is licensed under the GNU General Public License version 3.

openrct2-scenery-manager's People

Contributors

sadret avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

openrct2-scenery-manager's Issues

Feature Suggestion: Height Adaptation

When copying and pasting (primarily scatter scenery, but I can imagine this being useful in other use cases), it seems like it would be very helpful to have an option for pasted scenery to attach to whatever height the surface below it is as though it were placed manually without using the virtual floor. The specific way I have in mind is to take complex scattered terrain, or manually-placed objects from one surface to any surface with differing geometry with all of the tile objects "snapping" to the surface above or below.

As it works right now, the copied objects always keep the height they were originally placed at (more useful for copying buildings etc.) instead of snapping (more useful for copying gardens or forests consisting of only aboveground trees).

Feature suggestion: hotkeys

I don't know if this is planned: hotkey support for the scenery manager would be very useful. I don't know if plugins can access hotkeys though. There don't have to be created new hotkeys for the tool. I think somehow getting access to the tile inspector hotkeys would be already a very good solution. Personally I would only need these three hotkeys (they all work in TI):

lower/raise: basically a hotkey for the height offset box of the blueprint placement
rotation: a hotkey for the rotation box of the blueprint

additional hotkeys for changing the selection mode and copy mode would be nice too, of course. but as these actions are not done so much so there is not so much of a need I would say

Plugin doesnt work in the Scenario Editor

I was building a scenario, and since it is an "urban" based one it required building a lot of terraced houses and all that, Not wanting to do it by hand, thankfully I found this plugin. Unfortunately, it doesnt seem to work in the Scenario Creator, as you can see here:
image

But when I open a normal scenario it works fine
image
I didnt even get the "thank you for installing" popup until I opened a regular scenario.

I dont know if this is a bug, oversight, or limitation, or just me missing something, but it would be really handy if this could be looked into, thanks :)

src/gui is not available

The GUI part of the plugin doesn't seem to be on GitHub. This prevents the plugin from being built by anyone else or CI.

Can't paste template... Template includes scenery which is unavailable

Hello,
I try your plugin on a classic scenario (Crazy Castle).
I selected an area and when i click on "Copy area", i've got the message "Can't paste template... Template includes scenery which is unavailable"

I changed behavior in this case to "ignore", but i don't understand the error

image

OpenRCT2 v.0.3.2-397

suggestion: not have surface automatically ticked

Currently when opening the SM, all element types are selected in 'Filter' by default. I propose to have the filter of the type 'Surface' deselected by default (because in the rarest cases you want to copy the surface anyways).

Of course, even better would be a way to customize the default settings for startup of SM.

occupied quadrants are not set correctly in raw mode

Rotating and mirroring does not change occupiedQuadrants, which will then be incorrectly pasted in raw mode.

  • place quarter tile scenery
  • copy & paste it in raw mode with 90° rotation
  • another quarter tile scenery can be placed (with clearance checks enabled!) at the same position, but not on the target tile at the original position
    image

Doesn't recongnize scenery or buttons don't work annymore

Just updated the game to the latest dev build. Now the scenery manager doesn't recognieze scenery annymore.

As you can see, it's says 0 for everything. Pressing scan doesn't work.

image

Also for managing foothpaths, picking an item also does nothing, like any button that let's you pick something.

Multitile scenery is not copied correctly

At the moment, when copying an area with a multitile large scenery object, the scenery manager tries to place the whole object on every of the tiles of the original object (this becomes visible with clearence checks disabled), rather than pasting the right corresponding piece of the multitile object into its position. When clearances checks are turned on, the MT object is copied at the wrong position of the selected grid. So probably the code should check to place the MT object only on its (0,0) tile once.

I just realized that this behaviour only happens when 'unavailable elements' errors are turned of. Ok, then the "bug" makes sense of course since MT objects are not supported yet. Then I would request MT support as one of the coming improvements.

Object list: Can't sort if scrolled down

In the object list tab, you can sort the table by clicking on the column headers. However, if the list contains more items than fit on the screen, and you scroll down and then try to click on the column headers, sorting does not happen. Instead the plugin shows the details for the entry that's under the header row., as if the header row did not exist.

Feature suggestion : Include "Surface" elements

It could be interesting to have an option to include "surface" element when you want copy paste a selection area.

This feature would be great, for example if you made a giant mountain, with differents heights / corners on each square, and copy paste it on another place in a map.

Gridlines

Struggling to reproduce this one properly, but in some occasions, the plugin seems to override the "gridlines" setting in ORCT2. They will just disappear despite showing as turned on:

image

Bad error when running under headless

Running under headless mode gives:

[scenery-manager] Started
[scenery-manager] ReferenceError: identifier 'ui' undefined

The check for UI should be typeof ui === 'undefined'.

Allow sampling objects placed with "Zero clearances" enabled

Currently, unless zero clearancing is enabled, it's impossible to sample scenery which was placed whilst ZC was active. The same goes for placing it, too.

Is it possible to skip that step and have it always sample and place all objects, regardless of whether ZC is active or not?

Many thanks.

Feature suggestion: Height limits in selection

At the moment all scenery (and other stuff) on a selected tile is copied. I propose a lower and upper height limit, which indicates a window in the z axis from which the scenery will be copied. This would be very handy when copying only parts from architecture for example when you want to move/duplicate just the roof and not everything below.

Brush tool doesn't close when the plugin window is closed

If you open the scenery plugin, select a range of objects (so you get the brush tool activated), then close the plugin window, the paste brush tool does not deactivate. You'll still see the rectangular selection area and ghost scenery. It no longer does anything when you click, but it is an annoying visual glitch. You can clear it by activating a different built-in tool (like the landscaping tool).

Copy of track, path, path additions not supported

OpenRCT2, v0.3.5.1 (0a31d92 on develop) provided by GitHub
New Save Format

Copy and paste of track, path, path additions not working.
Copy and paste of small objects working properly.

Not tested for other object types.
Not tested for other features (i.e. height offset, rotation, ...)

Plants and trees not selectable

I have installed the plugin on a dedicated OpenRCT2 server running in a Docker container on Unraid. I can use the plugin to place benches and other things, but mainly wanted it for the ability to have it place plants.

The plants screen is not working and I can't select plants. This is what I can see on the plants tab:
image

The button "Pick" doesn't do anything, but it also doesn't work on other tabs. I don't see a way to select what plants I want.

New track pieces don't properly copy

If you build a LIM/looping coaster that uses the new track pieces, then use Scenery Manager to copy the track, some of the new track pieces exhibit some weird behavior. If you try to copy a full inversion, it's always the second half of that inversion (going from upside-down to normal) that doesn't copy correctly.

  • Large corkscrew right — second half fails to copy (the first half is fine)
  • Large zero-G roll — second half is shifted down a couple units (the first half is fine)
  • Medium loop — second half fails to copy (the first half is fine)

Track copy glitch

I tried to copy some track pieces one time and my game crashed. discord told me to report it to you

Add warning for or fix copy/pasting track elements at invalid heights

If you try to copy and paste track elements which were placed at invalid heights, it will only work when the cheat "Allow building tracks at invalid height" is active. Current behaviour is that those tracks are just simply not placed down when the cheat is not active.

Would it be possible to trigger a warning when trying to place a copied selection which contains tracks at invalid heights if the cheat is not active? Another option would be to briefly enable the cheat for placing down and restore the original cheat setting afterwards.

Thanks!

Brush tool controls bugged

After selecting the 6th object to the brush tool, the button for 'Add' stays in the clicked visual state. It still works. Also the size selection becomes faded.

After selecting the 7th object, the -10% button of the 7th entry shows the permantly clicked behaviour. Now the activation button is faded and doesnt work

From now when adding new objects to the selection, two rows of faded object entries travel through the selection, where you cannont control the percentage of one.

Saving a template doesn't work

Blank window where Save templates should go. No indication of where this is in the file system or if a specific file/folder needs to be created to support it.

Fence slope is not persisted when copy/pasting

If I have any fences with set slopes, and copy-paste some scenery, the slope of the fences is not carried over and they will all be flat.

See in this screenshot how many of the the wooden post fences on the left are sloped, but in the paste preview on the right, they are flat.

image

Issues with copying paths In new .Park save format

Trying to copy any tile that contains one of the new path items from the .Park test fails to copy any items, even when filtering to remove footpaths.

I have no idea if you plan on updating the plugin for the new file format, but I just thought I should bring the issue to your attention.

So far all other functionality seems to still work in the test build.

Scenery Manager replaces tertiary remap color on small scenery objects to black when copying

Operating System

Windows 10, 64-bit

OpenRCT2 build

OpenRCT2, v0.4.6-39-ge94dc57 (e94dc57 on develop) provided by GitHub

Base game

RollerCoaster Tycoon 2

Area(s) with this issue?

This bug is a graphical glitch or error

Describe the issue

When you want to copy a small scenery object with the Scenery Manager, it replaces the tertiary remap color with black when placed.

Steps to reproduce

  1. Place a small scenery object that has a different tertiary remap color than black
  2. Use ctrl+a to select the object (hotkey to select area in the Scenery Manager)
  3. Use ctrl+x or ctrl+c to copy the object to another tile (hotkey to copy area in the Scenery Manager)

Then you'll notice it replaced the tertiary remap color to black.

Attachments

1
sf.scenery_small.quarter_tile_light_path_square_recolor.zip

Attached is the small scenery object I used in the example as .zip.

(copied over from the OpenRCT2 repository)

Feature suggestion: height offset brush tool

At the moment the (very awesome) brush tool just places the scenery on ground level. Sometimes it might be favourable to place them with a (uniform) height offset. This is maybe not the case when placing foliage, but for example for path objects, that need to be raised sometimes. This feature would make the brushtool more versatile.

Right-click to delete placed scenery groups

Not sure this is possible, but since right-clicking on objects while the scenery menu is open is the norm for removing whatever the mouse hover detects. It would be incredible to allow removal of placed groups via the plugin in much the same way. This would only work for group items it recognises per user of course, and only for as long as that group is saved within the plugin.

Likely not easy to do I'd imagine. Just wanted to share.

More Diverse Brush Tool

Would it be possible to expand the selection of scenery objects for use in the brush tool?
Or I guess I mean allow a user to choose up to 10 different objects instead of 5 to scatter when using the brush tool?
Thanks.

Jump to Road objects in BPB spams JS errors

Jumping to Road objects in Blackpool Pleasure Beach (the one from the RCT1 import in OpenRCT2) does not work consistently and seems to spam errors in the plugin. Also the 'searching...' that is seen in the window never finishes its searching.

See screenshot:
image

The errors that are spammed:

[scenery-manager] Cannot read 'ride' property, path is not a queue.
[scenery-manager] Cannot read 'station' property, path is not a queue.

Feature Suggestion: toggle option for the area selection tool and placing scenery cursor

At the moment when selecting the area to copy and when placing the scenery the position on the map grid is determined by the scenery object the cursor focuses on. I understand that in some cases this might be very useful (especially at the selection process of tall buildings). In other occasions it is hindering the process a lot, when the area you are working on is quite full of objects already for example and you want to copy some area precisely. Also for placing objects I think it is not very useful for the same reasons, sometimes it is even impossible to get something into the right position.

So I would suggest an option to toggle this tile selection, so either the tile is targeted where the cursor points to, regardless of which object is in line (like it is the standard in RCT2 with objects, landtool etc., or the object hovering is activated. A hotkey toggle like in the tile inspector with ctrl would be the prime solution, but I think a checkbox toggle in the options would work, too.

Respect Z/Y default rotation shortcuts

First of, I'm still speechless as to what huge of an achievement this is, WOW! It feels like such a seminal moment in the RCT community to have this plugin. Thank you again and again.

One quick reaction upon first use: would you be interested in incorporating keyboard shortcuts, such as for instance the Z/Y keys (depending on region), as these have been the default for "rotate object" since RCT1 days.

Really just a usability enhancement suggestion of course.

Feature suggestion: Cut button

At the moment, after having put a selected area, the only option one has is to press the copy button to store the selection into the manager. I propose also a cut button, which acts like the standard cutting in any OS: you copy and delete the original selection. This feature would be very useful for relocating stuff on a map quickly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.