Code Monkey home page Code Monkey logo

bee2.4's Introduction

BEE2-items Releases BEE2.4 Releases Discord Server

Please read the Contributing Guidelines and FAQ before opening an issue.

BEE2 Icon

Better Extended Editor 2 version 4

Portal 2 Mod Tool

The BEE2 allows reconfiguring Portal 2's Puzzlemaker editor to use additional items, reskin maps for different eras, and configure many other aspects. All vanilla items have been upgraded with additional bugfixes and improvements.

The packages (item, style, etc definitions) are in the BEE2-Items repository.

Discord Server

Download and Use

  • Download the latest releases of the BEE2.4 and items from the following pages:
  • Extract the contents of the Application release anywhere you like. e.g. C:\BEE2.4
  • Place extracted package folder in the root BEE2 folder. e.g. C:\BEE2.4\packages
  • To run, locate the BEE2 application in the app folder and execute it. e.g. C:\BEE2.4\BEE2.exe

BEE2.4 on Mac

As of version 4.37 we have stopped supporting BEE2.4 on Mac. See this wiki article for more details and how you can still use the mod.

Used Libraries

Building from Source

Compilation

  • You'll need Python 3.8 or later, for 32-bit / Windows 7 you need 3.8 specifically.

  • First, grab the repo and then clone the HammerAddons submodule:

      git clone --recurse-submodules https://github.com/BEEmod/BEE2.4.git
      cd BEE2.4
      git submodule update --init
    
  • Run python -m pip install -r requirements.txt to install the required packages. On Linux, Pillow, TK and IDLE might need to be installed via the system package manager: python-pillow, python-pillow.imagetk, python-tkinter, python-idle, etc.

  • To allow sound effects in the app, you need a copy of FFmpeg:

    • In the BEE2.4 folder, add lib-32 and/or lib-64/ folders.
    • Download the 32-bit or 64-bit builds (winXX-lgpl-shared), then copy the contents of the bin folder into the appropriate lib-XX folder mentioned.
  • Finally, switch to the BEE2.4 repo and build the compiler, then the application (You should be in the BEE2.4 folder already):

      cd src/
      pyinstaller --distpath ../dist/64bit/ --workpath ../build_tmp compiler.spec
      pyinstaller --distpath ../dist/64bit/ --workpath ../build_tmp BEE2.spec
    
  • The built application is found in BEE2.4/dist/64bit/BEE2/. To generate the packages zips, either manually zip the contents of each folder or use the compile_packages script in BEE2-items. This does the same thing, but additionally removes some unnessary content to decrease file sizes - comments, blank lines, hidden visgroups.

  • For Linux Compilation check out this wiki entry Building from Source

bee2.4's People

Contributors

antecer avatar benvlodgi avatar birdstakes avatar classicoldsong avatar cmsev7 avatar cstafford-14 avatar darindouglass avatar darvil82 avatar dependabot[bot] avatar enderzombi102 avatar erickotato avatar ewber avatar halloihr0 avatar haydenwalker980 avatar hugobdesigner avatar konclan avatar lautarol20 avatar marvin1099 avatar neshiro avatar saismeesaimonsaimes avatar shaperones0 avatar sp2g50000 avatar teamspen210 avatar thedoczek avatar vrad-exe 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

bee2.4's Issues

Release Date??

So when's this thing coming out?
hopefully by summer.
consider creating a deadline so it gets done.

So what can this new version of Bee2 Do?

So what can this new version of Bee2 Do?

i want to know, list all of the features below, i have attempted to guess at some

  • use custom styles
  • adds the Wheatley style
  • customization of test chamber music and voice lines
  • allows usage of custom test chamber music
  • custom test chamber signage

Override VPK editor wall textures for styles

i see your getting a model chooser implemented, also i have some suggestions of things to implement into the final version and then get all items and styles converted and get it released.

  • when the style changes, figure out a way to have it change the default graphics shown in the PTI editor such as for a overgrown style, show overgrown panels in the pti editor instead of the default clean ones (i'm talking about the PTI editor wall and floor panels etc shown in this image: http://www.maclife.com/files/imagecache/futureus_imagegallery_fullsize/gallery/pti2.jpg), and for a wheatley style have the default goo graphic be replaced with a bottomless pit graphic) do the same thing with PTI for the underground style, and wheatley.
  • if there is no way yet to create and use custom voice lines in your test chamber, implement it.
  • (DO THIS) allow the player to choose what entrance or exit elevator their test chamber will have (for more style customization ect, and style transitions etc)

Switch to PakRat

PakRat is cross-platform, unlike packbsp. It also automatically detects files, so hopefully that will make things easier.

  • Auto-copy into bin/bee2/pakrat/
  • In VRAD, execute it on maps with the portal 2/bee2/ sourcemod folder as the "game folder"

BEEMOD Suggestions

So, I have a few suggestions for the BEEMOD team.

  1. Angle-able panels on a piston arm
  2. Possible tracks to cinematic-ally switch an testing element to another, like when GLaDOS is repairing the facility and switches a pellet element set for a laser set.
  3. Item that can control the type of chamber entrance/exit. I've noticed for example there are different types of chamber entrances/exits, and I would like to be able to customize them.
  4. Make it possible to rotate sections of the chamber similar to the Overgrown style application in the game.
  5. Curve brush items? Maybe these aren't practical but they might look nice in chamber design.
  6. Floor tracks
  7. Possible panel decoration that opens to reveal the outside of a test chamber. Referencing one of Ben's streamed chamber features.
  8. 1/4 Wall texture selector... Timer thingie based?
  9. Wall feature visuals? Ability to put Wall features on the same block but different sides?
  10. Piston arms / panels that can have their angle adjusted incrementally.
  11. 1/2 block vertical observation room like in the "broken" test-chamber in portal 1?
  12. Element types on piston arms
  13. Retractable Lasers/catchers/relays/Funnels/droppers
  14. Sliding panel that uncovers an element
  15. Rotating Fizzler? Rotating Hard Light Bridge?
  16. Water. Lakes of water. Harmless Toxic goo really.
  17. Ability to enable a wind entity (to affect leaves for instance in the Overgrown Style or just have a wind sound).
  18. Animation panel that can move backwards, slide in a set direction, and be replaced by something else. Same idea as (2)
  19. Enable/disable sparks in broken styles
  20. WorldPortal Doors do not work correctly/are difficult to get working/understand
  21. Chamberlocks will trap you inside if their input was decided by something going through a portal, like a laser.
  22. Living panels do not inherit gel properties.
  23. a few themes will neglect to spawn dropperless cubes, like art therapy and refurbished
  24. New BEEMOD icon made by me (http://www.mediafire.com/view/od8a81mmjm5i6f1)
    beemodlogo1
  25. Add Bisqwit's 512x256 Observation rooms?
  26. Portivity gun (Gravity Gun + Portal Gun) Found on the TWP website.
  27. wall decal item that changes type according to a timer adjuster
  28. Make the retractable button have a default of 01 instead of 03, similar to the instant pedestal button.
  29. Organize your portal spawner items. Some do not link to others in the map.
  30. Item to change skybox type as well as skybox related item overhauls
  31. Theme suggestion: BTS, kind of like a cave sphere entrance elevator with a path to the chamber, lots of other tests' exteriors visible around the chamber you are entering. Kind of like the scene before you go and beat wheatley, minus the crumbling.
  32. Vacuum tubes do not allow the map to compile and usually crashes the game.
  33. Catwalks need to be able to float in the air/and/or have an ability to change models via timer. Also catwalk stairs.
  34. Antlines routing funny on either plain doors or sendificators. possible a few other items too.
  35. Lighting does not look right on some elements such as portalable piston panels and large live panels.
  36. Better camera placement (They appear very buggy/weird looking on their mounts and sometimes look the opposite direction the player is)
  37. Some items lack images in the BEEMOD interface
  38. Deletion and creation of palettes, ability to create own categories in the sort by..
  39. Half panels not able to be in the same voxel area as toxic goo? also there could be a possible input here to open it...
  40. Half panels cannot be put on the same block and antlines have a tendency to route UNDER them. also portals may bug out and cover a corner of the black side.

Need a presentation model

We need to choose and implement some sort of presentation model for the GUI. Whether it be MVVM, MVP, MVC, or something else, we do need something so we aren't mucking up the GUI code with business logic. I don't know what would work best with python or our framework.

bee2 pre3 bug hunt

it's time for a bug hunt, list any bugs you find in the new bee2 pre3 below here. list format as bug description, conditions that cause it, and then compiler error (if any)

  • many custom items like HEP's have blue and purple checkboard textures or show error's in game in clean style.
  • sometimes dragging a item from the selection in the palette of bee2 causes it to be replaced by the wrong item and dragging out the wrong item causes it to be replaced by the correct one.
  • changing the music to "TEST" in the new bee2 in the default clean style causes PTI to give a compile error. Recommend checking all the songs to see which ones cause errors.
VBSP failed.
Config "../config\config.cfg" not found! Using defaults...
BEE2 VBSP hook initiallised.
Map path is "C:/Program Files (x86)/Steam/steamapps/common/Portal 2/sdk_content\maps/preview.vmf"
Loading settings...
{}
Settings Loaded!
PeTI map detected!
Parsing Map...
Parsing complete!
Game Mode: SP
Is Preview: True
"ITEM_PISTON_PLAT" not a valid item!
Editing Instances...
Checking Conditions...
Map has attributes:  ['floorbutton', 'weightedbutton', 'dualportalgun']
Style Vars: {'doorcameras': False}
Global instances:  ['instances/BEE2/clean/global_ents.vmf']
Adding Music...
Adding Global PTI Ents
Editing Other Entities...
Editing Brushes...
Editing Overlays...
Editing Triggers...
Editing Brush Entities...
Editing WorldSpawn
SP
Adding Singleplayer voice lines!
Adding Voice!
Config "bee2\SP.cfg" not found! Using defaults...
Config "bee2\MID_SP.cfg" not found! Using defaults...
Adding Base instance!
Generic True
Emancipation Grill False
Deadly False
Sentry Turret False
Discouragement Beam False
Conversion Gel False
Aerial Faith Plate False
Hard Light Bridge False
Propulsion Gel False
Mashy Spike Plate False
High Energy Pellets False
Reflection Gel False
Pneumatic Diversty Vent False
Paint Fizzler False
Sendificator False
Timer value:  -3
Chosen: [Property('instance', [Property('name', 'Federal Regulations'), Property('id', 'GENERIC_1'), Property('trans', 'Federal regulations require me to warn you that this next test chamber... is looking pretty good.'), Property('choreo', 'scenes/npc/glados/a2_triple_laser01.vcd')])]
Generic True
Deadly False
Aerial Faith Plate False
Repulsion Gel False
Propulsion Gel False
Timer value:  -3
Chosen: [Property('instance', [Property('name', 'Waddle Over To The Elevator'), Property('id', 'GENERIC_1'), Property('trans', "Waddle over to the elevator and we'll continue the testing."), Property('choreo', 'scenes/npc/glados/testchambermisc12.vcd')]), Property('instance', [Property('name', 'Mildly Impressive'), Property('id', 'GENERIC_2'), Property('trans', 'That was genuinely mildly impressive.'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard01.vcd')]), Property('instance', [Property('name', 'Statistically Speaking...'), Property('id', 'GENERIC_3'), Property('trans', 'You are playing above the global average. Statistically speaking, there are actually people playing worse than you.'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard20.vcd')]), Property('instance', [Property('name', 'Very Not Completely Bad'), Property('id', 'GENERIC_4'), Property('trans', 'Very not completely bad.'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard23.vcd')]), Property('instance', [Property('name', 'Maybe I Was Wrong'), Property('id', 'GENERIC_5'), Property('trans', '[impressed] Maybe I was wrong about you.'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard07.vcd')]), Property('instance', [Property('name', 'Impressive'), Property('trans', 'Impressive.'), Property('id', 'GENERIC_6'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard06.vcd')]), Property('instance', [Property('name', 'Congratulations'), Property('trans', 'Congratulations.'), Property('id', 'GENERIC_7'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard03.vcd')])]
mid quotes:  []
Done!
Saving New Map...
Complete!
Calling original VBSP...
"C:\Program Files (x86)\Steam\steamapps\common\Portal 2\bin\vbsp_original" -game "C:/Program Files (x86)/Steam/steamapps/common/Portal 2/portal2/" "C:\Program Files (x86)\Steam\steamapps\common\Portal 2\sdk_content\maps\styled\preview.vmf"
Valve Software - vbsp.exe (Aug 26 2014)
4 threads
materialPath: C:\Program Files (x86)\Steam\steamapps\common\Portal 2\portal2\materials
Loading C:\Program Files (x86)\Steam\steamapps\common\Portal 2\sdk_content\maps\styled\preview.vmf
ConVarRef gpu_level doesn't point to an existing ConVar
Could not open instance file BEE2/music/a4_tbeam_intro.vmf
VBSP failed! (1)
  • P-body and atlas have wrong portal guns in single player
  • changing to BTS style causes PTI compile error.
VBSP failed.
Config "../config\config.cfg" not found! Using defaults...
BEE2 VBSP hook initiallised.
Map path is "C:/Program Files (x86)/Steam/steamapps/common/Portal 2/sdk_content\maps/preview.vmf"
Loading settings...
{'side': ['instances/BEE2/bts/sky/edge_1.vmf', 'instances/BEE2/bts/sky/edge_2.vmf', 'instances/BEE2/bts/sky/edge_3.vmf', ''], 'pillar': ['instances/BEE2/bts/sky/pillar_1.vmf', 'instances/BEE2/bts/sky/pillar_1.vmf', 'instances/BEE2/bts/sky/pillar_1.vmf', 'instances/BEE2/bts/sky/pillar_1.vmf', ''], 'height': 386, 'tex_sky': 'TOOLS/TOOLSSKYBOX', 'off_x': -8192, 'tele_ref': '@sky_tele_ref', 'off_y': 0, 'tex_goo': 'nature/toxicslime_puzzlemaker_cheap', 'should_tele': True, 'tele_dest': '@sky_tele_targ'}
Settings Loaded!
PeTI map detected!
Parsing Map...
Parsing complete!
Game Mode: ERR
Is Preview: ERR
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>
  File "vbsp.py", line 1474, in <module>
  File "vbsp.py", line 1438, in main
  File "vbsp.py", line 451, in get_map_info
Exception: Unknown game mode - Map missing exit room!
  • portal 1 exit door is wrong type of door
  • 1980's style gives compile error in PTI when used.
VBSP failed.
Config "../config\config.cfg" not found! Using defaults...
BEE2 VBSP hook initiallised.
Map path is "C:/Program Files (x86)/Steam/steamapps/common/Portal 2/sdk_content\maps/preview.vmf"
Loading settings...
{}
Settings Loaded!
PeTI map detected!
Parsing Map...
Parsing complete!
Game Mode: SP
Is Preview: True
"ITEM_PISTON_PLAT" not a valid item!
Editing Instances...
Checking Conditions...
adding overlay instances/BEE2/50s/sphere_sp/entry_corridor_2/no_bluegel.vmf
adding overlay instances/BEE2/50s/sphere_sp/entry_corridor_2/no_deadly.vmf
adding overlay instances/BEE2/50s/sphere_sp/entry_corridor_2/no_funnel.vmf
Map has attributes:  ['dualportalgun']
Style Vars: {}
Global instances:  ['instances/BEE2/80s/global_ents.vmf']
Adding Music...
Adding Global PTI Ents
Editing Other Entities...
Changing goo sides...
Done!
Editing Brushes...
Editing Overlays...
Editing Triggers...
Editing Brush Entities...
Editing WorldSpawn
SP
Adding Singleplayer voice lines!
Adding Voice!
Config "bee2\SP.cfg" not found! Using defaults...
Config "bee2\MID_SP.cfg" not found! Using defaults...
Adding Base instance!
Generic True
Emancipation Grill False
Deadly False
Sentry Turret False
Discouragement Beam False
Conversion Gel False
Aerial Faith Plate False
Hard Light Bridge False
Propulsion Gel False
Mashy Spike Plate False
High Energy Pellets False
Reflection Gel False
Pneumatic Diversty Vent False
Paint Fizzler False
Sendificator False
Timer value:  -3
Chosen: [Property('instance', [Property('name', 'Federal Regulations'), Property('id', 'GENERIC_1'), Property('trans', 'Federal regulations require me to warn you that this next test chamber... is looking pretty good.'), Property('choreo', 'scenes/npc/glados/a2_triple_laser01.vcd')])]
Generic True
Deadly False
Aerial Faith Plate False
Repulsion Gel False
Propulsion Gel False
Timer value:  -3
Chosen: [Property('instance', [Property('name', 'Waddle Over To The Elevator'), Property('id', 'GENERIC_1'), Property('trans', "Waddle over to the elevator and we'll continue the testing."), Property('choreo', 'scenes/npc/glados/testchambermisc12.vcd')]), Property('instance', [Property('name', 'Mildly Impressive'), Property('id', 'GENERIC_2'), Property('trans', 'That was genuinely mildly impressive.'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard01.vcd')]), Property('instance', [Property('name', 'Statistically Speaking...'), Property('id', 'GENERIC_3'), Property('trans', 'You are playing above the global average. Statistically speaking, there are actually people playing worse than you.'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard20.vcd')]), Property('instance', [Property('name', 'Very Not Completely Bad'), Property('id', 'GENERIC_4'), Property('trans', 'Very not completely bad.'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard23.vcd')]), Property('instance', [Property('name', 'Maybe I Was Wrong'), Property('id', 'GENERIC_5'), Property('trans', '[impressed] Maybe I was wrong about you.'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard07.vcd')]), Property('instance', [Property('name', 'Impressive'), Property('trans', 'Impressive.'), Property('id', 'GENERIC_6'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard06.vcd')]), Property('instance', [Property('name', 'Congratulations'), Property('trans', 'Congratulations.'), Property('id', 'GENERIC_7'), Property('choreo', 'scenes/npc/glados/dlc1_leaderboard03.vcd')])]
mid quotes:  []
Done!
Saving New Map...
Complete!
Calling original VBSP...
"C:\Program Files (x86)\Steam\steamapps\common\Portal 2\bin\vbsp_original" -game "C:/Program Files (x86)/Steam/steamapps/common/Portal 2/portal2/" "C:\Program Files (x86)\Steam\steamapps\common\Portal 2\sdk_content\maps\styled\preview.vmf"
Valve Software - vbsp.exe (Aug 26 2014)
4 threads
materialPath: C:\Program Files (x86)\Steam\steamapps\common\Portal 2\portal2\materials
Loading C:\Program Files (x86)\Steam\steamapps\common\Portal 2\sdk_content\maps\styled\preview.vmf
ConVarRef gpu_level doesn't point to an existing ConVar
Error! Variable "$envmap" is multiply defined in material "metal/underground_wall_metal004a_bottom"!
Could not open instance file instances/BEE2/80s/indicator_panel.vmf
VBSP failed! (1)
  • selecting spawn at elevator spawns at door in default clean style

Duplicating item in palette menu

Sometimes clicking on an item multiple times in the outgoing palette, duplicates the item, especially if you then click on another item
I've also noticed this happens when I pick up an item, and instead of getting the "moving item" image I get a duplicate of an item behind it

some final implementations needed for bee2

here are some final implementations that should go into bee2. these will give it TOTAL test chamber customization. good luck, I hope you can implement some of these. ben agrees with me on giving the player an option to choose the exit and entrance elevator and hallways etc.

  • add an option to select a common audio file for custom music and have bee2 automatically convert it to the right format and everything and assign it all the correct properties and implement it right into the test chamber.
  • add an option to select a common audio file for a custom voice line and have bee2 automatically convert it to the right format and everything and assign it the correct properties and implement it into the test chamber.
  • add an option to select a common video file for a custom elevator video and have bee2 automatically convert it to the right format and everything and assign it the correct properties and implement it into the elevator of your test chamber.
  • (ben agree's with me on this one) add an option that allows you to choose what entrance and exit elevators and elevator hallways your test chamber uses if you don't want them randomized, I recently saw a video of backstock ben put up and he has created an elevator with no walls and ceiling outside the test chamber in a Wheatley like style that uses a diversity tube ride to take you to the next test chamber. an elevator like this would be good for a modernized clean style with bottomless pits and open walls and ceilings with multiverse cave as the narrator.

Add changeInstances command to VBSP

Add "changeinstance" command, swaps instances if conditions are met
This allows making most of the style-based modification

  • check for conditions in load_entites
  • can change based on:
    • quote pack
    • style option
    • Coop
    • isPreview
    • key name is "ifQuote", "ifStyleTrue", "ifStyleFalse", "ifMode", "ifPreview"
      • first 3 have value of target item, last 2 have value of true/false/1/0
    • perhaps "OpType" "OR" or "AND", decides if the conditions are read as an AND or OR op
    • implementation: store all unsatisfied in one list, copy contents to another when satisfied.

Allow forcing one variant of the entry/exit hallways

  • Replace single InstFiles definition for corridors with a 1-7 block of files (like item properties.txt icons)
  • Add to style definition option to provide names for variants (default to Hallway 1,2,3,4,5,6,7)
  • Add dropdowns to compile options pane (perhaps make this scrollable like style properties)
  • Output hallway number to compile.cfg, 0=random, 1-4 / 1-7 for force
  • In get_map_info() (should rename function), set to new variant when original detected

No license

There doesn't seem to be a license for BEE2 itself in the repository.

Error while publishing puzzle

I get an error when I try to publish a puzzle in the puzzle maker, this is the code from the dev console

Ellington Isle unpaused the game
[PORTAL2 PUZZLEMAKER] Saved puzzle: C:/Program Files (x86)/Steam/steamapps/common/Portal 2/portal2/puzzles\76561198025151093\autosave.p2c
[PORTAL2 PUZZLEMAKER] Saved puzzle: puzzles\76561198025151093\1433689612.p2c
[PORTAL2 PUZZLEMAKER] Saved puzzle: puzzles\76561198025151093\1433689612.p2c
[PORTAL2 PUZZLEMAKER] CVoxelTestChamber::Export VMF C:/Program Files (x86)/Steam/steamapps/common/Portal 2/sdk_content\maps/1433689612.vmf ...
[PORTAL2 PUZZLEMAKER] CVoxelTestChamber::Export VMF success, chamber size: (9,5,6)
[PORTAL2 PUZZLEMAKER] Compilation time (after export): 103 (ms)
[PORTAL2 PUZZLEMAKER] Compilation time (after VBSP): 13733 (ms)

VVIS failed.

Valve Software - vvis.exe (Jun 4 2014)
4 threads
reading c:\program files (x86)\steam\steamapps\common\portal 2\sdk_content\maps\1433689612.bsp
reading c:\program files (x86)\steam\steamapps\common\portal 2\sdk_content\maps\1433689612.prt
LoadPortals: couldn't read c:\program files (x86)\steam\steamapps\common\portal 2\sdk_content\maps\1433689612.

Dropperless custom cube items

I've noticed in the older releases (not bee2.4) that some addons such as the portal deflection cube did not have a dropper. I suggest that in the future, we can put a custom cube item on the pallet and have a checkbox on whether or not it should have a dropper, or completely mimic the original PTi's cube selection tool.

Item Variants

A way to specify that certain instances should have a number of alternate versions randomly swapped in to allow for more randomness in levels. The original instance will never be used.
Instance names will have "_var3" appended to the filename, ignoring the vmf extension.
Syntax:
"Variant"
{
"Instance" "path/to/instance.vmf"
"Number" "5"
"Weights" "1,5,2,25,5"
}
Weights is optional, but if specified it allows some instances to be more likely compared to others.

The filters get cut off

Problem: The filters get cut off
Possible solution: let the menu extend as far as it needs to to the right, even off the interface

Existing item already on palette

Conditions: Pick up an item from the bucket that already exists on the palette. When you mouse over the palette
Result: The existing item glows(or something) and the mouse cursor indicates that the action is not allowed

Dragging over and back removes item

If you pick up an item that exists on the palette already. Drag the item over the palette, then back over the bucket, the item is removed from the palette

Portal 2 crashes when going back in to edit puzzle

using custom items in game from bee2 and then leaving portal 2 and going into bee2 and changing some of the items (removing ones from palette used in test chamber) sometimes causes portal 2 to crash when going back in to edit puzzle.

SP Player model selector

Add a dropdown or radio button group to the compiler pane to choose the SP model - Chell, Bendy, ATLAS, P-Body. This adds an instance from instances/BEE2/ to the map for non-Bendy options. Does nothing in Coop.

  • Add a get_opt() property to indicate the instance origin (default to near arrival_departure_ents)
  • Add a condition flag, so instances can change if needed (they won't in default styles):
    • "PlayerModel" "Chell, Bendy, ATLAS, P-Body, Robot, Human"

Export to editoritems

  • Export vbsp_config
  • Add custom skybox, portal bump, other settings as needed
  • Copy in all the style item data, then all items collections making sure to copy the correct ones

Load in styles and items

General:

  • Load into memory
  • Handle inheriting from base styles
  • Detect any additional settings needed for styles (recessed 50s buttons, etc)

Styles:

  • Design style file structure
  • Create style class
  • Load style files
  • Parse style files into style classes
  • Create style inheritance tree from styles

Items:

  • Design item file structure
  • Create item file class
  • Create item class
  • Load item files
  • Parse items files into item file classes
  • Generate items from item file classes

IDEA: rename Bee2.4 to Bee 3??

i have an idea, since bee2 is the last version of the bee editor, this new one will have MANY new things which will make it COMPLETELY different from bee2. it might be a good idea to just rename this one to bee 3 on initial release.

Release Date?

so when's this thing getting released (estimated)

portal mel stories has been delayed until most likely December.

Use custom texture for around goo pits

  • Use the side instance computation from bottomless pits.
  • Only execute if special.goo_side is defined or bottomless pits are enabled.
  • This allows using mossy/ damaged textures for the sides of goo pits.

OverlayInstance

Added to the instances section of vbsp_config. This lets you specify an instance flag, and a second instance + an (optional) targetname. For all of the flagged instances, a new instance will be placed at the same position and orientation, with the new filename and targetname. If no targetname is specified, it will be the same as the original instance. This allows placing entities in other objects like the elevators or exit doors conditioonally.

Clumping wall textures

This option makes textures be clumped into different areas, simulating the hapazard construction of Old Aperture

  • Roof + non-wall + special tex behaves like now
  • Make this style option "ClumpWallTex", if 0 do what happens now (skip this code)

For walls:

  1. Create dict
  • Calc bounding box for each plane, then determine origin
  • Store material Property in dict with key = 3-tuple(x,y,z)
  • Material value = "WHITE" or "BLACK" depending on tex
    1. Loop:
  • Choose random key (starting origin)
  • Choose certain material (randomly)
  • Generate random width/height/depth (rectangular box, values configured by style options)
  • Loop through each possible position in box:
  • If key extists change to chosen texture (only if unaltered)
  • Repeat (the total number of textures) / 5 or so (configurable)
    1. Loop back through the changed mats again, if any not changed then change them to a random one (to fill in gaps)
    2. this might be a configurable texture, like wood boards or similar

Item/Theme Correlation Issues

When building a test chamber with BEEMod (Any Version) you may choose a few items and add them to the map and then go back to BEEMod. Now you want to add more items and change the theme. items available in one theme will disappear from the paletter another theme in both BEEMOD and en route the PTi palette. While this makes sense in some places, like not having a sendificator in the 1950's, it bugs me sometimes when i have to make testchambers in specific themes for the kind of puzzle i want.

Suggestion: Customizable Signage

i think you should implement this into this new version of bee2 if you havn't

Customizable test chamber Signage

here's what you should be able to change or add (for small description)

  • name of test chamber
  • a small description below the name (such as "difficulty level = challanging")
  • the test elements used in the test chamber that are lit in black on the sign
  • show custom test elements on the sign lit up in black (such as a sendificator)

VMF library

VMF library:
A library to manage the file structure of VMF files, and allow easy modification. This will remove this often repeated code from the VBSP app, and make it easier to add additional features. The library should sanity-check relevant the imported structure, and produce errors if any value is unreadable.

All classes have these methods:

  • init() which generates a new item of that type
  • parse() which generates the object based on a property_parser tree
  • export() returns the string needed to produce the object in the VMF.

VMF

The object representing the map itself. Stores lists of other objects, and tracks used entity/solid/face ids.

  • init()
  • parse(prop_tree): generates based on the original VMF file
  • export()
  • .entities: list of all entities in this map
  • .solids: list of all world brushes in the map.
  • .spawn: returns the map's worldspawn entity.
  • find_ent(vals={}, tags={}): searches through entities to find ones with keyvalues equal to the vals dict, and keyvalues that contain the values in the tags dict
  • find_inp(name, param=False): returns list of all outputs that refer to the listed targetname. If parm is true also return outputs with the targetname in the parameter.
  • add_world(brush): adds the passed solid to the map as a world brush.
  • rem_world(brush): removes the passed solid from the world brush list.

Entity

The object representing a point or brush entity.

  • init()
  • parse()
  • export()
  • .keys: dictionary containing all keyvalues
  • .replace: a dictionary containing $replace variables, or None if entity is not a func_instance.
  • .solid: list of solid objects, or None for point ents
  • .id: Entity ID
  • entity["targetname"]: gets or sets this keyvalue, returning None if not set.
  • remove(): Removes this from the map

Solid

Represents a solid, either as a world brush or as part of a brush entity.

  • init()
  • parse()
  • export()
  • solid[2]: indexes this list of faces.
  • .id: the brush ID

Face

A face of a solid.

  • init()
  • parse()
  • export()
  • .id: the face ID.
  • .planes: list of the 3 vectors defining the plane.
  • .mat: the material of this face.
  • .lightmap: the lightmap scale of the face.
  • .smoothing: a binary number saving the smoothing groups.
  • .ham_rot: value showing the face's rotation, for hammer to use.
  • .uaxis, .vaxis: a dict containing {'x', 'y', 'z', 'off', 'scale'}

Output

Represents an entity's output.

  • init()
  • parse()
  • export()
  • .output: the output that triggers this.
  • .inst_out: the internal instance entity that triggers this, or None if N/A.
  • .input: the input this triggers.
  • .inst_in: the internal instance entity that should be triggered, or None if N/A.
  • .target: the targetname of the entity/instance that is targeted.
  • .delay: float value for the delay before this is triggered.
  • .times: the number of times the output can be triggered, or -1 for infinite.

Screenshot modification

  • Add a panel into the BEE2 app to browse for a map screenshot.
  • VBSP will inject this as untitled.jpg, then mark it readonly so Portal 2 can't overwrite the new screenshot.
  • Include options to use the automatic screenshot, the original (editor view) or a custom image

VBSP/RAD Hammer detection

Change how the compiler detects Hammer has compiled the map - check running processes for the presence of hammer_run_map_launcher.exe to detect if hammer compiled the map and disable extra features (excluding auto-packing).

Add some extra command-line flags:

  • (BSP/RAD) force_hammer: force it to behave as if compiled via Hammer
  • (BSP/RAD) force_peti: force it to behave as if compiled via PeTI
  • (BSP) elevators: force the player to spawn in elevators
  • (RAD) no_pack: disable running the packer.

Precompiler

Precompiled features:

  • add in new instances for music, voices etc to map
  • add instances to global_ents based on items in the map.

VBSP_styles features:

  • Ignore compiles made via hammer (without -entity_limit 1750)
  • Read in instructions from editoritems
  • Save copy of vmf in styled/name to allow editing
    • pass to real vbsp
  • Loop through all textures, changing if necersary
    • Change skybox texture
    • Categorised based on the orientation, texture type, etc
    • Need to match the tile size of the clean ones (special 4x4 tex, 2x2, like with EmbedFace or goo)
    • Rotate sqaurebeams texture 90 degrees if needed
    • Randomly set scale of black walls (to match P1 era random tiling, with only one texture)
    • Replace overlay textures and other similar special materials
    • If multiple materials of the same type are specified, choose randomly between the valid options
  • Fix the fizzler model inputs (Valve bug)
  • If start reversed is enabled, convert fizzler to paint fizzler:
    • Find and change textures for brush
    • Change all models to alt instance
    • Convert brush to use trigger_paint_cleanser
    • May wish to not change models, and instead base on a new custom item
  • If needed rescale antlines to be 1x1 per image (Old Ap) instead of 1x4 (Clean)
    • Additional feature: retexture antlines based on orientation (for P1 style)
  • If control is held, edit the $no_player_start on the entry elevator and exit corridor to behave like preview mode. (It would be useful to make this apply to the other entry/exit instances too.)
  • Copy screenshots around, set/clear readonly to trick puzzlemaker into using custom screenshots
    • Detect and add the playtested icon if player solved map sucessfully
    • This uses the "preview###.jpg" file made on entering a map, and the "previewcomplete###.jpg" made on winning (as a marker.)
    • Additional feature: delete old ones (> day old or so), this folder will get very large over time.
  • If needed fix glass:
    • Switch the glass128_128.vmf (used for both) to either realglass128_128.vmf or grating128_128.vmf depending on type
    • If property is set use nobump_glass128_128.vmf (has func_portal_bumper to prevent portal bumping)
  • If needed convert goo to bottomless pit:
    • Make goo brushes 1 unit thick in bottom of pit
    • Additional feature: Convert trigger_multiples to trigger_teleports with reference and dest set, plus delete output
  • Set fizzler scan line property if needed

VRAD_styles features:

  • override to use fast lighting for quick compile
    • ignore if control held
  • If set, generate filelist then run packBSP:
    • Match instances to editoritems definitions, then pack files referenced in the editoritems definition
    • Check vmf (in case hammer users added comments) for packing commands
    • Commands :
      • //packer_additem:materials/models/tex.vmt;materials/models/text.vtf
      • //packer_addfile:list_of_mats.txt
      • //packer_rename:models/orig_name.mdl;models/new/name_mapnamehere.mdl (mapnamehere should be replaced)
  • Likely needs to perform part of the custom screenshot system

Add bottomless pits to initial release

bottomless pits should be included with the initial release, a glados clean style with bottomless pits instead of goo would work well for the first release of this new version of bee2.

Pedestal rooms

Related to some chatter in the BEE discussion.

What: A room or area (could be a part of the elevator instance, like an extended walkway a the top of the stairs) that provides the player with the portalgun that they will be using for the test. Gun should maybe then be removed from the player before the elevator ride.

Why: To draw the players attention to the gun and its capabilities. Specificically useful in chambers where the user can only shoot blue portals.

How: (In order of how it probably should be done, first one is probably the best option)
Could be a compile option in the BEE2 which is then handled by the precompiler.
Could be an item when present in the map creates the room. This item could also use used to indicate what version of the Portalgun is used. (I don't actually know how that works in this version)
Could be some right click property on the entry door.

Allow entry/exit doors to be on floors/ceilings

since choosable entry and exit elevators will be done by style. why not add the extended relaxation vault as a level start type choice with different variants depending on the style. this would be used to introduce you to a story if you created a long series of tests in PTI.

  • for 50's underground style, have the ERV be replaced by a train bringing you into aperture (as seen in portal stories mel)
  • for overgrown, make it an overgrown relaxation vault with the announcer voice.
  • for clean, regular vault with GLaDOS or multiverse cave introducing you.
  • for Wheatley, clean but with a Wheatley style test chamber with Wheatley greeting you.

Make changeInstance recursive

Changeinstance should recurse until it no longer finds rules to apply. This allows conditions to change what final instance will be used. It + variants should probably be moved to a second iteration in fix_inst, so they always occur last and apply to all instances.

Filter items by various checkboxes

Checking/in checking a box should not re-evaluate the other columns

  • Unchecking all checkboxes, checking BEEMOD (packages) then unchecking TeamSpen210 (author) will show BEEMOD1 items that I have not modified.

It will update the other columns with half-selected checkboxes if items with that property are now visible
Clicking a half-selected property will always disable it.

Sendificator antlines

In the custom compiler, it could locate antlines that are associated with the sendificator output. It would:

  • swap the indicator_toggle instance for a special sendificator-only one
  • add an output to the Sendificator to trigger the toggle at the right time
  • change the overlays to use the sendificator's antline texture.
  • if an indicator sign instance is present that should be deleted (but only if the antline is present).

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.