@Override protected EllipseGlassThing addThing(List<ObjRef> relLineageRefs, ObjRef objRef) { Point newPointSpot = ArchipelagoUtils.findOpenSpotForNewThing(getBNAWorld().getBNAModel()); EllipseThing edge = getBNAModel().addThing(new EllipseThing(null)); edge.setLineWidth(2); edge.setColor(null); EllipseGlassThing thing = Assemblies.createEllipse(getBNAWorld(), null, edge); thing.setBoundingBox( new Rectangle(newPointSpot.x, newPointSpot.y, defaultSize.width, defaultSize.height)); Assemblies.BACKGROUND_KEY .get(thing, getBNAModel()) .set(IHasColor.COLOR_KEY, new RGB(32, 32, 32)); Assemblies.BACKGROUND_KEY.get(thing, getBNAModel()).set(IHasCount.COUNT_KEY, defaultCount); Assemblies.BACKGROUND_KEY .get(thing, getBNAModel()) .set(IHasLocalInsets.LOCAL_INSETS_KEY, new Insets(4, 4, 4, 4)); Assemblies.markPart(thing, EDGE_KEY, edge); mvl.mirrorValue( Assemblies.BACKGROUND_KEY.get(thing, getBNAModel()), IHasColor.COLOR_KEY, Assemblies.BACKGROUND_KEY.get(thing, getBNAModel()), IHasSecondaryColor.SECONDARY_COLOR_KEY, new Function<RGB, RGB>() { @Override @Nullable public RGB apply(@Nullable RGB input) { return BNAUtils.adjustBrightness(input, 1.5f); } }); mvl.mirrorValue(thing, IHasBoundingBox.BOUNDING_BOX_KEY, edge); UserEditableUtils.addEditableQualities( thing, IHasMutableSelected.USER_MAY_SELECT, IRelativeMovable.USER_MAY_MOVE); return thing; }