amp-web-push-widget button.amp-subscribe { display: inline-flex; align-items: center; border-radius: 5px; border: 0; box-sizing: border-box; margin: 0; padding: 10px 15px; cursor: pointer; outline: none; font-size: 15px; font-weight: 500; background: #4A90E2; margin-top: 7px; color: white; box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.5); -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } /** * Jetpack related posts */ /** * The Gutenberg block */ .jp-related-posts-i2 { margin-top: 1.5rem; } .jp-related-posts-i2__list { --hgap: 1rem; display: flex; flex-wrap: wrap; column-gap: var(--hgap); row-gap: 2rem; margin: 0; padding: 0; list-style-type: none; } .jp-related-posts-i2__post { display: flex; flex-direction: column; /* Default: 2 items by row */ flex-basis: calc( ( 100% - var(--hgap) ) / 2 ); } /* Quantity qeuries: see https://alistapart.com/article/quantity-queries-for-css/ */ .jp-related-posts-i2__post:nth-last-child(n+3):first-child, .jp-related-posts-i2__post:nth-last-child(n+3):first-child ~ * { /* From 3 total items on, 3 items by row */ flex-basis: calc( ( 100% - var(--hgap) * 2 ) / 3 ); } .jp-related-posts-i2__post:nth-last-child(4):first-child, .jp-related-posts-i2__post:nth-last-child(4):first-child ~ * { /* Exception for 4 total items: 2 items by row */ flex-basis: calc( ( 100% - var(--hgap) ) / 2 ); } .jp-related-posts-i2__post-link { display: flex; flex-direction: column; row-gap: 0.5rem; width: 100%; margin-bottom: 1rem; line-height: 1.2; } .jp-related-posts-i2__post-link:focus-visible { outline-offset: 2px; } .jp-related-posts-i2__post-img { order: -1; max-width: 100%; } .jp-related-posts-i2__post-defs { margin: 0; list-style-type: unset; } /* Hide, except from screen readers */ .jp-related-posts-i2__post-defs dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; } .jp-related-posts-i2__post-defs dd { margin: 0; } /* List view */ .jp-relatedposts-i2[data-layout="list"] .jp-related-posts-i2__list { display: block; } .jp-relatedposts-i2[data-layout="list"] .jp-related-posts-i2__post { margin-bottom: 2rem; } /* Breakpoints */ @media only screen and (max-width: 640px) { .jp-related-posts-i2__list { display: block; } .jp-related-posts-i2__post { margin-bottom: 2rem; } } /* Container */ #jp-relatedposts { display: none; padding-top: 1em; margin: 1em 0; position: relative; clear: both; } .jp-relatedposts:after { content: ''; display: block; clear: both; } /* Headline above related posts section, labeled "Related" */ #jp-relatedposts h3.jp-relatedposts-headline { margin: 0 0 1em 0; display: inline-block; float: left; font-size: 9pt; font-weight: bold; font-family: inherit; } #jp-relatedposts h3.jp-relatedposts-headline em:before { content: ""; display: block; width: 100%; min-width: 30px; border-top: 1px solid #dcdcde; border-top: 1px solid rgba(0,0,0,.2); margin-bottom: 1em; } #jp-relatedposts h3.jp-relatedposts-headline em { font-style: normal; font-weight: bold; } /* Related posts items (wrapping items) */ #jp-relatedposts .jp-relatedposts-items { clear: left; } #jp-relatedposts .jp-relatedposts-items-visual { margin-right: -20px; } /* Related posts item */ #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { float: left; width: 33%; margin: 0 0 1em; /* Needs to be same as the main outer wrapper for Related Posts */ box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post { padding-right: 20px; filter: alpha(opacity=80); -moz-opacity: .8; opacity: .8; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4), #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4) { clear: both; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a { text-decoration: underline; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover { filter: alpha(opacity=100); -moz-opacity: 1; opacity: 1; } /* Related posts item content */ #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title, #jp-relatedposts .jp-relatedposts-items p, #jp-relatedposts .jp-relatedposts-items time { font-size: 14px; line-height: 20px; margin: 0; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs { position:relative; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay { position:absolute; top:0; bottom:0; left:0; right:0; display:block; border-bottom: 0; } #jp-relatedposts .jp-relatedposts-items p, #jp-relatedposts .jp-relatedposts-items time { margin-bottom: 0; } #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title { text-transform: none; margin: 0; font-family: inherit; display: block; max-width: 100%; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a { font-size: inherit; font-weight: normal; text-decoration: none; filter: alpha(opacity=100); -moz-opacity: 1; opacity: 1; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover { text-decoration: underline; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img, #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span { display: block; max-width: 90%; overflow: hidden; text-overflow: ellipsis; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img, #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span { height: auto; max-width: 100%; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date, #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context { opacity: .6; } /* Hide the date by default, but leave the element there if a theme wants to use css to make it visible. */ .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date { display: none; } /* Behavior when there are thumbnails in visual mode */ #jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt { display: none; } /* Behavior when there are no thumbnails in visual mode */ #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt { overflow: hidden; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span { margin-bottom: 1em; } /* List Layout */ #jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post { clear: both; width: 100%; } #jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img { float: left; overflow: hidden; max-width: 33%; margin-right: 3%; } #jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title { display: inline-block; max-width: 63%; } /* * Responsive */ @media only screen and (max-width: 640px) { #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { width: 50%; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n) { clear: left; } #jp-relatedposts .jp-relatedposts-items-visual { margin-right: 20px; } } @media only screen and (max-width: 320px) { #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { width: 100%; clear: both; margin: 0 0 1em; } #jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img, #jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title { float: none; max-width: 100%; margin-right: 0; } } /* * Hide the related post section in the print view of a post */ @media print { .jp-relatedposts { display:none ; } } .amp-logo amp-img{width:371px} .amp-menu input{display:none;}.amp-menu li.menu-item-has-children ul{display:none;}.amp-menu li{position:relative;display:block;}.amp-menu > li a{display:block;} /* Inline styles */ div.acss138d7{clear:both;}div.acss0dcba{--relposth-columns:3;--relposth-columns_m:3;--relposth-columns_t:3;}div.acss12a58{aspect-ratio:16/9;background:transparent url(https://i0.wp.com/jerz.setonhill.edu/wp-content/uploads/2025/02/Screenshot-2025-02-16-at-11.51.31%E2%80%AFAM-600x537-1.png?resize=150%2C150&ssl=1) no-repeat scroll 0% 0%;height:150px;max-width:150px;}div.acss020fa{color:#333333;font-family:Arial Narrow;font-size:11px;height:45px;}div.acss79008{aspect-ratio:16/9;background:transparent url(https://i0.wp.com/jerz.setonhill.edu/wp-content/uploads/2022/04/sisko-facepalm.jpeg?resize=150%2C150&ssl=1) no-repeat scroll 0% 0%;height:150px;max-width:150px;}div.acssd783c{aspect-ratio:16/9;background:transparent url(https://i0.wp.com/jerz.setonhill.edu/wp-content/uploads/2025/02/img_2085-1.jpg?resize=150%2C150&ssl=1) no-repeat scroll 0% 0%;height:150px;max-width:150px;}div.acssdbd6b{aspect-ratio:16/9;background:transparent url(https://i0.wp.com/jerz.setonhill.edu/wp-content/uploads/2025/01/img_2072-1.jpg?resize=150%2C150&ssl=1) no-repeat scroll 0% 0%;height:150px;max-width:150px;}div.acss5f08e{aspect-ratio:16/9;background:transparent url(https://i0.wp.com/jerz.setonhill.edu/wp-content/uploads/2025/01/duolingo_sharing-1.png?resize=150%2C150&ssl=1) no-repeat scroll 0% 0%;height:150px;max-width:150px;}div.acssbcb5b{aspect-ratio:16/9;background:transparent url(https://i0.wp.com/jerz.setonhill.edu/wp-content/uploads/2025/01/Screenshot-2025-01-21-at-3.34.52%E2%80%AFPM.png?resize=150%2C150&ssl=1) no-repeat scroll 0% 0%;height:150px;max-width:150px;} .icon-widgets:before {content: "\e1bd";}.icon-search:before {content: "\e8b6";}.icon-shopping-cart:after {content: "\e8cc";}

Half-Life 2 Mod: Week 10 — Why Hammer Isn't Good for Fiddly Details or, The Mystery Room Revealed

Half-Life 2 Mod: Week 10 — Why Hammer Isn’t Good for Fiddly Details or, The Mystery Room Revealed (Jerz’s Literacy Weblog)

These last few weeks were a bit crazy, so I fell a bit behind in my Half Life 2 modding. Instead, I spent some time working on two different conference proposals that deal with interactive fiction. Oh, and there’s the end-of-term rush of students who suddenly want to learn.

Anyway, I’ve been coyly staying away from what’s behind these doors.




In the Cloak of Darkness specification that I’m using (not particularly rigidly) to guide my modding exploration, there’s supposed to be a bar to the south of the lobby. The specification doesn’t say what the bar looks like, so I figured… what the heck.


Valve’s Hammer world editor is actually not the right tool to use in order to create objects with this level of detail. Hammer is no good at curves, or at measurements of less than one inch. There are so many points and lines that make up the bridge consoles, that the tiniest distortion means the edges don’t line up.

I spent over a week fixing every single joint and line in the bridge, working from one area and going around clockwise. After several days, I thought I was going crazy, because vertices that I would have sworn I had fixed were suddenly becoming disjointed again.

It turns out that when I made subtle changes in the locations of the vertices, for the rest of that editing session the changes would stick, but when I exited the editor and loaded the file again, the vertices would jump back to where they had been before. If I moved them around significantly, or added a new object, those changes would remain, so I knew it wasn’t a problem with simply forgetting to save my work.

Anyway, I wasted nearly a week with that. That’s when I realized that, if I wanted to do any kind of detail work, I had to shift over to a 3D modeling tool. Such a tool can create a complex object that can be imported into the Hammer editor. People and detailed props such as weapons or vehicles are created in that manner, while doors, walls, floors, and other simple surfaces are created in the world editor. The captain’s chair and the railings look pretty good, since they’re all composed of straight lines. But the bridge console chairs and the consoles themselves, which have curves and complex angles, simply weren’t working.

Well, I learned something.

When you actually play this game, there’s a pulsing red alert light. You can see some of that red in this picture.


I’ll probably do something to make it look more like a bar when I get back to working on Cloak of Darkness, but for now my work on the bridge is done. If I ever get to the point where I can create orignal Star Trek NPCs, maybe I’ll return to this set. But for now, I’m shifting my attention to the 3D modeling tools, just so I can have some experience creating some softer, curved objects.

That’s because the Cloak of Darkness specification requires a cloak, and while I don’t think I’m going to be able to make a fully realistic 3D cloth object that drapes over whatever you place it on, at the very least I’ve got to make a cloak hanging on a hook. I’m a little intimidated by that, and tempted to switch to Inform 7 (text adventure) design for a little while, but we’ll see what happens.

Share
Published by
Dennis G. Jerz

Recent Posts

January 6th … the board game?

About 20 of us are here in Brooklyn to play a large-scale war game —…

2 days ago

Rapture #StarTrek #DS9 Rewatch (Season 5, Episode 10) Sisko’s “visions” complicate politics, faith and family

Rewatching ST:DS9 Kira is moved by the interest Sisko shows in an artifact recently recovered…

4 days ago

Selling Point (Audio Drama)

I had fun recording this in the studio -- with live foley artists! https://youtube.com/watch?v=Xc-_o_qr2vE&si=ozF_Zxd4wAWR2W6w  

4 days ago

Letter to the editor: Setting record straight on Seton Hill newspaper

Here's my letter responding to an recent article about the future of the student newspaper…

2 weeks ago

Don’t Be a Sucker (antifascist film from 1945)

https://youtu.be/CXm3WxU--fM?si=E1BHac8JgF83G2FL   Full version

2 weeks ago