Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Onboarding of new SEE members #479

Open
4 tasks
koschke opened this issue Oct 12, 2022 · 0 comments
Open
4 tasks

Onboarding of new SEE members #479

koschke opened this issue Oct 12, 2022 · 0 comments
Assignees
Labels
good first issue Good for newcomers

Comments

@koschke
Copy link
Collaborator

koschke commented Oct 12, 2022

New SEE members should familiarize themselves with the basics of the SEE implementation by solving a simple task that touches most relevant pieces of code.

A new marking action is to be implemented. A user should be able to select an element in a code city (an inner node or a leaf in terms of the underlying graph) to mark it. When marking a node, the following should happen (marking works as a toggle):

  • When a node is not yet marked, it will be marked by showing a sphere above the selected node (developers can select any color). The diameter of the sphere must be the minimum of the width (x axis) and depth (z axis) of the marked node.
  • When a node is already marked, the sphere created for the marking is destroyed.

Required implementations:

  • A new class SEE.Controls.Actions.MarkAction must be added (note our coding guidelines: the directory structure must reflect the namespace and filenames must be chosen reflecting the main class contained therein; thus, the code of this new class must be contained in Assets/SEE/Controls/Actions/MarkAction.cs.) The new class must be derived from class AbstractPlayerAction. All required methods must be implemented (Update, Undo, Redo, CreateReversibleAction, NewInstance, GetActionStateType, GetChangedObjects). The duty of this class is to manage the user interaction and to provide undo/redo capabilities.
  • A new class SEE.Net.MarkNetAction must be added. It must derive from SEE.Net.AbstractNetAction. Its purpose is to broadcast an action of the local player to all clients, that is, to replicate the action in all client code cities such that all players always have a consistent view of the SEE scenery.
  • A new static class SEE.Game.SceneManipulation.GameNodeMarker must be added. Its purpose is to provide the necessary functions to create and destroy the sphere for the marking. Both SEE.Controls.Actions.MarkAction and SEE.Net.MarkNetAction must essentially do the same thing: mark a node visually by a sphere. SEE.Controls.Actions.MarkAction does this locally (for the player triggering this action) and SEE.Net.MarkNetAction does this remotely. To avoid duplicated code, the shared code for the marking/unmarking is factored out into this new class SEE.Game.SceneManipulation.GameNodeMarker.
  • The action must be made available in the player menu (which can be turned on by the user by pressing the space bar). To add the new action to this user menu, the class SEE.Controls.Actions.ActionStateTypes must be extended by providing a new static property analogous to the other declarations in code region Static Types. This new static ActionStateType property must be returned by method SEE.Controls.Actions.MarkAction.GetActionStateType.

Hints:

  • Take a look at the existing code for adding a node, namely, the classes SEE.Controls.Actions.AddNodeAction, SEE.Net.AddNodeNetAction, and SEE.Game.SceneManipulation.GameNodeAdder as an example.
  • GameObjectExtensions.GetTop() yields the world-space center position of a game object taking into account the antenna or other kinds of decoration on top of a block.
  • Consider the case that a game object is already marked. If so, it should be unmarked, that is, the added sphere should be removed again.
@koschke koschke added the good first issue Good for newcomers label Oct 12, 2022
@koschke koschke pinned this issue Oct 12, 2022
@Li-ID Li-ID self-assigned this Oct 18, 2022
Li-ID added a commit that referenced this issue Oct 20, 2022
The user can toggle the marking on any node. A marked node will have a white sphere hovering above it.
Li-ID added a commit that referenced this issue Oct 20, 2022
Li-ID added a commit that referenced this issue Oct 20, 2022
Li-ID added a commit that referenced this issue Oct 20, 2022
m4xxed added a commit that referenced this issue Oct 21, 2022
Marker sphere placement needs to be fixed yet.
m4xxed added a commit that referenced this issue Oct 21, 2022
m4xxed added a commit that referenced this issue Oct 21, 2022
Relative positions and scales do not spawn marker spheres at required
positions and with required sizes. Code needs adapting to relative
scaling in Unity.
ZerlindaYu added a commit that referenced this issue Oct 22, 2022
Yvo02 added a commit that referenced this issue Oct 23, 2022
Added functionality for GameNodeMarker, MarkAction and MarkNetAction. Extended ActionStateType with a new spacebar action for marking an element.
ZerlindaYu added a commit that referenced this issue Oct 23, 2022
ZerlindaYu added a commit that referenced this issue Oct 23, 2022
ZerlindaYu added a commit that referenced this issue Oct 23, 2022
ZerlindaYu added a commit that referenced this issue Oct 23, 2022
ZerlindaYu added a commit that referenced this issue Oct 23, 2022
Yvo02 added a commit that referenced this issue Oct 24, 2022
hlkuss added a commit that referenced this issue Oct 24, 2022
…Onboarding-hannes

# Conflicts:
#	Assets/SEE/Controls/Actions/MarkAction.cs
Yvo02 added a commit that referenced this issue Oct 26, 2022
@Yvo02 Yvo02 linked a pull request Oct 26, 2022 that will close this issue
koschke added a commit that referenced this issue Oct 26, 2022
Yvo02 added a commit that referenced this issue Oct 26, 2022
Co-authored-by: Falko <10247603+falko17@users.noreply.github.com>
Yvo02 added a commit that referenced this issue Oct 26, 2022
@Li-ID Li-ID linked a pull request Oct 26, 2022 that will close this issue
@tbeckord tbeckord linked a pull request Oct 27, 2022 that will close this issue
SchrammJonas added a commit that referenced this issue Oct 27, 2022
all in one: create MarkAction.cs, MarkNetAction.cs and GameNodeMarker.cs, also add the mark action in ActionStateType.cs
koschke pushed a commit that referenced this issue Dec 31, 2022
Co-authored-by: Falko <10247603+falko17@users.noreply.github.com>
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
Marker sphere placement needs to be fixed yet.
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
Relative positions and scales do not spawn marker spheres at required
positions and with required sizes. Code needs adapting to relative
scaling in Unity.
koschke pushed a commit that referenced this issue Dec 31, 2022
The user can toggle the marking on any node. A marked node will have a white sphere hovering above it.
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
koschke pushed a commit that referenced this issue Dec 31, 2022
all in one: create MarkAction.cs, MarkNetAction.cs and GameNodeMarker.cs, also add the mark action in ActionStateType.cs
koschke pushed a commit that referenced this issue Dec 31, 2022
The marking sphere now appears on top of all children.
koschke pushed a commit that referenced this issue Dec 31, 2022
@SarahAugustinowski SarahAugustinowski self-assigned this Oct 14, 2023
@Omidious Omidious linked a pull request Oct 19, 2023 that will close this issue
SarahAugustinowski added a commit that referenced this issue Oct 19, 2023
… selected. If the same node will clicked again, it will be unmarked. Fixes needed, because the unmarking doesn't work for the client yet
@lilSander lilSander linked a pull request Oct 19, 2023 that will close this issue
SarahAugustinowski added a commit that referenced this issue Oct 25, 2023
…llRootTypesJustContainsAllRoots order corrected
@SarahAugustinowski SarahAugustinowski linked a pull request Oct 25, 2023 that will close this issue
@SarahAugustinowski SarahAugustinowski removed their assignment Mar 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment